Mi instalación en subcarpeta seguía dando errores en la consola de Firefox porque no podía encontrar los mapas de origen.
Error del mapa de origen: la solicitud falló con el estado 404 URL del recurso: [https://redacted.com/community/assets/admin-…1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js](https://redacted.com/community/assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js) URL del mapa de origen: /assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js.map
Como puedes ver, falta el prefijo de ruta /community en la URL del mapa de origen.
Así que hice una pequeña investigación.
lib/tasks/assets.rake hace lo siguiente:
assets = cdn_relative_path("/assets")
source_map_root = assets + ((d = File.dirname(from)) == "." ? "" : "/#{d}")
Ahora, cdn_relative_path en lib/global_path.rb se ve así:
module GlobalPath
def path(p)
"#{GlobalSetting.relative_url_root}#{p}"
end
def cdn_path(p)
GlobalSetting.cdn_url.blank? ? p : "#{GlobalSetting.cdn_url}#{path(p)}"
end
def upload_cdn_path(p)
if SiteSetting.Upload.s3_cdn_url.present?
p = Discourse.store.cdn_url(p)
end
(p =~ /^http/ || p =~ /^\/\//) ? p : cdn_path(p)
end
def cdn_relative_path(path)
if (cdn_url = GlobalSetting.cdn_url).present?
URI.parse(cdn_url).path + path
else
path
end
end
Como puedes ver, tanto cdn_path como upload_cdn_path terminan llamando al método path, que asegura que se añada el prefijo de la subcarpeta. Sin embargo, cdn_relative_path no llama al método path; simplemente devuelve su parámetro (llamado… path).
Por cierto, creo que cdn_path también debería devolver path(p) en la parte media del operador ternario.