Как сделать так, чтобы Discourse генерировал относительные URL для загруженных изображений?
У меня есть сайт, доступный по HTTPS и через TOR .onion, и мне нужен способ, чтобы изображения работали в обоих случаях.
Как настроить Discourse так, чтобы URL вида upload:// преобразовывались в относительные URL в теге <img>? Где (в каком исходном файле) происходит эта генерация URL?
Загрузка работает корректно как с домена HTTPS, так и с скрытого сервиса TOR .onion, но фактически сгенерированный HTML для сообщения использует полный URL, что является проблемой.
Предполагаю, что где-то есть код, который делает что-то вроде:
Будет ли игра с absolute_without_cdn слишком низкоуровневой и затронет слишком много вещей?
URL должен быть относительным, потому что:
Обычный браузер не может получить доступ к .onion URL.
Не может получить доступ к обычному сайту через TOR, так как он защищен от DDoS-атак. И даже если бы это работало, я не хочу раскрывать детали узлам выхода TOR.
Это потребует некоторых внутренних изменений. Я отчасти сочувствую, так как это немного упрощает жизнь при смене доменных имен для сайтов, которые не используют CDN.
Нужно сделать что-то вроде: ЕСЛИ CDN не настроен, то формировать относительный URL.
Я хотел бы поддержать использование относительных внутренних ссылок. В настоящее время я использую полные URL-адреса для ссылок, например, на другую тему на том же сайте.
Действительно, наш сайт недавно сменил домен (при этом сейчас активна перенаправляющая ссылка):
Наш новый хост Communiteq (ранее DiscourseHosting) любезно каким-то образом отредактировал нашу базу данных, чтобы отразить это изменение.
Возможно, есть технические причины для текущего состояния? Может быть, в будущем мы сможем использовать что-то вроде %{THIS}/t/000? Как разработчик, я обычно нервничаю из-за абсолютных путей. Также возникает вопрос перехода с http: на https:, который мы также осуществили (или, по крайней мере, ужесточили контроль) в рамках упомянутой миграции. Это выглядит очень похоже на случай использования @mreach.
Как всегда, большое спасибо команде Discourse за замечательный продукт. Р.