Ruby on rails 在Rails 3.1生产模式中找不到预编译的CSS

Ruby on rails 在Rails 3.1生产模式中找不到预编译的CSS,ruby-on-rails,ruby-on-rails-3.1,precompiled,Ruby On Rails,Ruby On Rails 3.1,Precompiled,在生产模式下启动rails时,它会预编译所有资产,但无法为application.css资产提供服务。我查看了public/assets,预编译的application.css已经存在 然而,每当我试图从页面访问404时,我都会得到一个404 这些是我用来启动服务器的说明,如果有帮助的话 RAILS_ENV=production bundle exec rake assets:clean RAILS_ENV=production bundle exec rake assets:precompil

在生产模式下启动rails时,它会预编译所有资产,但无法为application.css资产提供服务。我查看了
public/assets
,预编译的application.css已经存在

然而,每当我试图从页面访问404时,我都会得到一个404

这些是我用来启动服务器的说明,如果有帮助的话

RAILS_ENV=production bundle exec rake assets:clean
RAILS_ENV=production bundle exec rake assets:precompile
rails -e production

你能确认一下你有吗

<%= stylesheet_link_tag "application" %>

在应用程序布局的头部部分,而不是类似以下内容:

<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />


这确保了预编译的应用程序xxx.css将被包括在内。

因此,rails不负责为其预编译的静态资产提供服务。您必须配置您使用的web服务器(即nginx),以便为您而不是rails提供这些静态资产。我希望文档中的内容更清楚。

如果您希望Rails为静态资产提供服务,请在production.rb中添加以下行:

config.serve_static_assets = true

我知道最好允许apache或nginx为它们提供服务,但如果您使用的是rails独立服务器(或者至少它可以与thin一起使用)

我不使用rails 3.1,但
资产
文件夹不是在应用程序根目录中,不是在
公共
文件夹中吗?如果这是错误的,请原谅。这是错误的,它位于
公共
文件夹中。您的原始appliation.css位于哪里?是否在/app/assets/stylesheets/application.css中?另外,html源代码在样式表链接标记方面是什么样子的?它引用application.css还是预编译的应用程序xxx.css?原始的application.css位于/app/assets/stylesheets/中。html源代码引用了预编译的应用程序-xxx.csu。请提供一个链接,说明如何为相同的应用程序配置服务器?