Minha instalação em subpasta continuava gerando erros no console do Firefox sobre a incapacidade de encontrar os source maps.
Erro de source map: solicitação falhou com status 404 URL do recurso: [https://redacted.com/community/assets/admin-…1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js](https://redacted.com/community/assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js) URL do Source Map: /assets/admin-e1c3cbc1d82fc1b0c7d1f24b7b71256a4eb4860f1aa96444925a361d8c24425c.js.map
Como você pode ver, o prefixo de caminho /community está ausente na URL do source map.
Então, fiz uma pequena investigação.
lib/tasks/assets.rake faz o seguinte:
assets = cdn_relative_path("/assets")
source_map_root = assets + ((d = File.dirname(from)) == "." ? "" : "/#{d}")
Agora, cdn_relative_path em lib/global_path.rb se parece com isso:
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 você pode ver, tanto cdn_path quanto upload_cdn_path acabam chamando o método path, que garante que o subpasta esteja sendo prefixado. No entanto, cdn_relative_path não chama o método path; ele apenas retorna seu parâmetro (chamado… path).
Aliás, acho que cdn_path também precisa retornar path(p) na parte intermediária do operador ternário?