2017-08-17 97 views
0

我在生产服务器上执行了'rake assets:precompile',资产是在公共/资产文件夹中生成的,但rails使用url搜索资源,例如domain.com/javascript/application.js,为什么不能像domain.com/assets/application .js,因为asssets存在于资产文件夹中。当我在生产环境中部署应用程序时,无法找到404错误的资产。另外,为什么.sprocket-manifest文件不是在资产文件夹中创建的。为什么网站资产不包含资产词?

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被 - :像

production.rb有配置。谢谢。

回答

1

在轨道4,你需要做以下修改:

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

这适用于我。使用下面的命令来预编译资产

RAILS_ENV =产品包的exec耙资产:预编译

祝您好运!