Зачем ссылаться на активы, не содержащие слово "активы"?

Я произвел '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 активы: прекомпиляция

Удачи!

Другие вопросы по тегам