Я установил экземпляр Discourse вчера, а сегодня он показывает чёрную страницу, и в консоли я вижу:
Refused to load the script 'https://ajax.cloudflare.com/cdn-cgi/scripts/95c75768/cloudflare-static/rocket-loader.min.js' because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'report-sample' [url]/logs/ [url]/sidekiq/ [url]/mini-profiler-resources/ [url]/assets/ [url]/brotli_asset/ [url]/extra-locales/ [url]/highlight-js/ [url]/javascripts/ [url]/plugins/ [url]/theme-javascripts/ [url]/svg-sprite/". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
A bad HTTP response code (404) was received when fetching the script.
Не могли бы вы подробнее объяснить, почему это «абсолютно» несовместимо? Я использую это в других приложениях на Rails, которые сильно кастомизированы и оптимизированы, и у меня всё работает успешно (обычно после небольшой отладки). Мне интересно, почему Discourse не был переработан, чтобы обеспечить работу со всем набором сервисов CloudFlare, учитывая, что они широко используются.
Кажется, вы исходит из предположения, что Cloudflare может оптимизировать код Discourse лучше, чем собственные разработчики CDCK. На чем основано ваше мнение?
Cloudflare подходит в качестве кэша, но все функции производительности должны быть отключены, иначе ваша установка не будет поддерживаться.
Судя по некоторым обсуждениям, которые я видел здесь, существуют проблемы с тем, что значимая отрисовка первого кадра (First Meaningful Paint) происходит достаточно быстро: в различных тестах получаются именно такие результаты. Я надеялся, что Rocket Loader возможно ещё больше сократит это время, пока в данной области ведутся работы по её устранению.
Нет, это только ухудшит ситуацию. Discourse — это JavaScript-приложение, поэтому первая загрузка займёт чуть больше времени, так как приложение должно быть загружено в JavaScript-окружение браузера.
Технически это должно работать, но если не работает, то потому, что Cloudflare написал плохой код. Если вы хотите продолжить разбирательство, напишите им об этом. Мы не можем контролировать код Cloudflare, потому что мы… не Cloudflare.