Зачем ссылаться на активы, не содержащие слово "активы"?
Я произвел 'rake assets:precompile' на рабочем сервере, и ресурсы были сгенерированы в общедоступных папках / ресурсах, но rails выполняет поиск ресурсов по URL-адресу, например, domain.com/javascript/application.js, почему не как domain.com/assets/application.js, так как наборы присутствуют в папке активов. Когда я развернул приложение в производственной среде, не было обнаружено ни одного ресурса с ошибкой 404. Кроме того, почему файл.sprocket-manifest не создан в папке активов.
У production.rb есть конфиг:
Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_files = true # ENV['RAILS_SERVE_STATIC_FILES'].present?
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
config.log_level = :debug
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
config.active_record.dump_schema_after_migration = false
end
Я использую рельсы 4.2.8. Спасибо.
1 ответ
В рельсах 4 вам нужно внести следующие изменения:
config.assets.compile = true config.assets.precompile = ['.js', '.css', '*.css.erb']
Это работает со мной. используйте следующую команду для предварительной компиляции ресурсов
RAILS_ENV= производственный пакет exec rake активы: прекомпиляция
Удачи!