0

我在生产服务器中执行了“rake assets:precompile”,并且资产是在 public/assets 文件夹中生成的,但是 rails 会使用 domain.com/javascript/application.js 之类的 url 搜索资产,为什么不喜欢 domain.com/assets/application.js ,因为资产存在于资产文件夹中。当我在生产环境中部署应用程序时,发现没有资产出现 404 错误。另外,为什么 .sprocket-manifest 文件没有在 assets 文件夹中创建。

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

我一直在使用 Rails 4.2.8。谢谢你。

4

1 回答 1

1

在 Rails 4 中,您需要进行以下更改:

config.assets.compile = true config.assets.precompile = [' .js', ' .css', '*.css.erb']

这对我有用。使用以下命令预编译资产

RAILS_ENV=production bundle exec rake assets:precompile

祝你好运!

于 2017-10-31T10:51:30.360 回答