In lib/global_path.rb sieht cdn_relative_path wie folgt aus:
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
Wie Sie sehen, rufen sowohl cdn_path als auch upload_cdn_path letztendlich die Methode path auf, die sicherstellt, dass der Unterordner als Präfix hinzugefügt wird. Allerdings ruft cdn_relative_path die Methode path nicht auf; es gibt einfach seinen Parameter (der … path heißt) zurück.
Übrigens: Ich denke, cdn_path sollte im mittleren Teil des Ternärs ebenfalls path(p) zurückgeben?
@david hat das in der Vergangenheit schon mal angepasst, aber ja, die Pfade für CDN + Unterordner korrekt hinzubekommen, ist nicht einfach. Ich bin offen für einen PR, der das behebt, solange er sehr gezielt auf deine magische Kombination ausgerichtet ist und keine bestehenden funktionierenden Stellen beeinträchtigt.
@sam Haben wir Lösungen für dieses Problem mit einer falschen Source Map? Ich habe das gleiche Problem bei der Installation in einem Unterordner und mit Fastly CDN.
Ja, ich habe in den letzten Wochen eine Reihe von Verbesserungen an Source Maps vorgenommen, die sowohl für ‘Legacy’- als auch für Ember-CLI-Pipelines gelten.
Ich habe gerade eine unserer gehosteten Unterordner-Websites auf tests-passed überprüft, und die Dinge scheinen viel besser zu funktionieren