Нужны относительные URL для загруженных изображений

Как сделать так, чтобы Discourse генерировал относительные URL для загруженных изображений?

У меня есть сайт, доступный по HTTPS и через TOR .onion, и мне нужен способ, чтобы изображения работали в обоих случаях.

Как настроить Discourse так, чтобы URL вида upload:// преобразовывались в относительные URL в теге <img>? Где (в каком исходном файле) происходит эта генерация URL?

Я не думаю, что относительные URL-адреса изображений поддерживаются в конфигурации, и это может быть очень сложным изменением, cc @sam

Только для уточнения:

Загрузка работает корректно как с домена HTTPS, так и с скрытого сервиса TOR .onion, но фактически сгенерированный HTML для сообщения использует полный URL, что является проблемой.

Предполагаю, что где-то есть код, который делает что-то вроде:

 '<img src="' + Discourse.base_url_no_prefix + '/uploads/....jpg' + '">' 

и мне нужно, чтобы он генерировал:

 '<img src="' + '/uploads/....jpg' + '">' 

Будет ли игра с absolute_without_cdn слишком низкоуровневой и затронет слишком много вещей?

URL должен быть относительным, потому что:

  • Обычный браузер не может получить доступ к .onion URL.
  • Не может получить доступ к обычному сайту через TOR, так как он защищен от DDoS-атак. И даже если бы это работало, я не хочу раскрывать детали узлам выхода TOR.

Это потребует некоторых внутренних изменений. Я отчасти сочувствую, так как это немного упрощает жизнь при смене доменных имен для сайтов, которые не используют CDN.

Нужно сделать что-то вроде: ЕСЛИ CDN не настроен, то формировать относительный URL.

Предполагаю, что это нужно настраивать только при изменении конфигурации?

Представьте себе:

'<img src="' + Discourse.cdn_url_no_prefix + '/uploads/....jpg' + '">'

Когда CDN не настроен, Discourse.cdn_url_no_prefix может быть просто пустой строкой.

Означает ли это, что есть шанс, что вы сможете реализовать это в (ближайшем) будущем?

Просто хочу поддержать @sam: у нас уже были случаи с переносом доменов, поэтому поддержка относительных URL абсолютно необходима.

Я хотел бы поддержать использование относительных внутренних ссылок. В настоящее время я использую полные URL-адреса для ссылок, например, на другую тему на том же сайте.

Действительно, наш сайт недавно сменил домен (при этом сейчас активна перенаправляющая ссылка):

Наш новый хост Communiteq (ранее DiscourseHosting) любезно каким-то образом отредактировал нашу базу данных, чтобы отразить это изменение.

Возможно, есть технические причины для текущего состояния? Может быть, в будущем мы сможем использовать что-то вроде %{THIS}/t/000? Как разработчик, я обычно нервничаю из-за абсолютных путей. Также возникает вопрос перехода с http: на https:, который мы также осуществили (или, по крайней мере, ужесточили контроль) в рамках упомянутой миграции. Это выглядит очень похоже на случай использования @mreach.

Как всегда, большое спасибо команде Discourse за замечательный продукт. Р.

При смене домена обычно не составляет большого труда выполнить целевой поиск и замену во всех затронутых сообщениях.