你好我在公共目录中有资产(因为简单)
在布局中我加载
<link href="/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="/assets/css/jumbotron.css" rel="stylesheet">
<link href="/assets/css/application.css" rel="stylesheet">
并且在开发中它运作良好但在生产资产中没有加载。
我的 Development.rb
Web::Application.configure do
config.cache_classes = false
config.whiny_nils = true
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.action_mailer.raise_delivery_errors = false
config.active_support.deprecation = :log
config.action_dispatch.best_standards_support = :builtin
config.active_record.mass_assignment_sanitizer = :strict
config.active_record.auto_explain_threshold_in_seconds = 0.5
config.assets.compress = false
config.assets.debug = true
end
我的 Production.rb
Web::Application.configure do
config.cache_classes = false
config.consider_all_requests_local = true # default false, zobrazuje errory
config.action_controller.perform_caching = false # default true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true # default false
config.assets.digest = true
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
end
答案 0 :(得分:28)
Rails 4和5的配置已更改。
对于Rails 4:
id
对于Rails 5:
config.serve_static_files = true
答案 1 :(得分:27)
这是因为你有
config.serve_static_assets = false
在production.rb
文件中。
config.serve_static_assets
将Rails配置为提供静态资产。默认为true,但在生产环境中关闭,因为用于运行应用程序的服务器软件(例如Nginx或Apache)应该为静态资产提供服务。与默认设置不同,在运行时(绝对不推荐!)或使用WEBrick在生产模式下测试应用程序时将此设置为true。否则,您将无法使用页面缓存,并且对公共目录下经常存在的文件的请求将无论如何都会打到您的Rails应用程序。
就像该指南所暗示的那样,你真的不应该依赖于通过你的Rails应用程序提供来自public/
的资产,最好让网络服务器(例如Apache或Nginx)处理服务资产以提高性能。 / p>