当我在生产模式下启动rails时,它会预编译所有资产,但无法提供application.css资产。 我查看了public/assets
,预编译的application.css存在。
但是,每当我尝试从页面访问它时,我都会得到404。
这些是我用来启动服务器的说明,如果这可能有帮助的话。
RAILS_ENV=production bundle exec rake assets:clean
RAILS_ENV=production bundle exec rake assets:precompile
rails -e production
如果您希望Rails为静态资产提供服务,请将以下行添加到production.rb:
config.serve_static_assets = true
我知道最好允许apache或nginx为它们提供服务,但是如果你使用的是rails独立服务器(或者至少它适用于瘦),这是有效的
事实证明,rails不负责提供它预编译的静态资产。 您必须配置您使用的Web服务器(即nginx)为您提供这些静态资产而不是rails。 我希望这些文件更加清晰。
你能否确认一下
<%= stylesheet_link_tag "application" %>
在应用程序布局的头部分而不是像:
<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />
这样可以确保包含预编译的application-xxx.css。