Error loading asset config 404
Я развернул свое приложение rails с включенным Asset Pipeline внутри файла application.rb:
# Enable the asset pipeline
config.assets.enabled = true
Когда я проверяю, я вижу, что файлы были обработаны компилятором внутри public/assets каталог, но когда я просматриваю веб-сайт, ни один из активов не может быть разрешен браузером. Если я напрямую получу доступ к ресурсам, я увижу сообщение 404 от Nginx.
Кто-нибудь может сказать мне, что происходит?
Ответ
В основном файлы, которые скомпилированы и сжаты gzip, отсутствуют в правильном каталоге.
Попробуйте установить config.assets.compile = true in config/environments/development.rb если вы работаете в среде разработки. Он будет генерировать файл ресурсов на лету, когда он вызывается. Это плохо для производства, так как это ухудшит производительность.
Поэтому, если вы находитесь в производственной среде, попробуйте запустить
rake assets:precompile
Недавно я наткнулся на ту же проблему. Я предполагаю, что вы говорите о производственной среде. Решение состояло в том, чтобы снова потребовать звездочки в application.rb либо делая
require ‘sprockets/railtie’
or
require ‘rails/all’
Это было потеряно, потому что мы не использовали весь фреймворк Rails и отключили ActiveRecord в пользу Mongoid. Подводный камень в том, что при обновлении Rails до более новых версий вы можете не заметить, что rails/all меняет его содержимое.
Статический файл .json в папке assets возвращает 404
Запрос на помощь
Я внедрил версию редактируемых файлов конфигурации, и она отлично работает при локальном запуске с использованием ng-serve, однако, когда я запускаю ng-build и копирую содержимое папки dist на наш сервер разработки, я получаю ошибку 404 при попытке доступа к конфигурации.файл json, который находится в /assets/config/ . Файл находится в правильном месте на сервере, и я могу получить доступ к другим файлам в той же папке, но я просто не могу получить доступ к конфигурационному файлу. Приложение размещено в IIS, поэтому, возможно, есть какое-то ограничение на файлы json, но кроме этого я не могу понять, что может быть причиной этого.
У кого-нибудь есть какие-либо предложения?
Ответ
Возможно, файл json не скопирован в папку dist. В противном случае я бы сказал, что iis не настроен для обслуживания файлов json
Да, это было оно!
Для дальнейшего использования я добавил
<staticContent>
<mimeMap fileExtension=”.json” mimeType=”application/json” />
</staticContent>
в мой файл web.config в разделе <system.webServer>, и все это работало нормально.
Я только что получил точно такую же проблему. Обновление омнибусной установки с 8.11.7 до 8.12.0 с помощью обратного прокси-сервера nginx. Это другой файл, но, по сути, та же проблема…
==> /var/log/gitlab/gitlab-rails/production.log <== Processing by RootController#index as HTML Completed 200 OK in 58ms (Views: 27.6ms | ActiveRecord: 3.8ms) Started POST “/api/v3/internal/allowed” for 127.0.0.1 at 2016-09-23 15:42:54 +0000 Started POST “/ci/api/v1/builds/register.json” for xxx.xxx.xxx.xxx at 2016-09-23 15:42:54 +0000 Started GET “/assets/application-204e7b3d5eb4881844cf4ccd8b6a8a0d60ca35d2fda088c667058efbc4aa9499.css” for xxx.xxx.xxx.xxx at 2016-09-23 15:42:54 +0000 Processing by ProjectsController#show as HTML Parameters: {“namespace_id”=>”assets”, “id”=>”application-204e7b3d5eb4881844cf4ccd8b6a8a0d60ca35d2fda088c667058efbc4aa9499.css”} Filter chain halted as :project rendered or redirected Completed 404 Not Found in 16ms (Views: 0.5ms | ActiveRecord: 1.6ms)
Большое вам спасибо за вашу помощь.