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

问题描述 投票:18回答:3

当我在生产模式下启动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
ruby-on-rails ruby-on-rails-3.1 precompiled
3个回答
34
投票

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

config.serve_static_assets = true

我知道最好允许apache或nginx为它们提供服务,但是如果你使用的是rails独立服务器(或者至少它适用于瘦),这是有效的


3
投票

事实证明,rails不负责提供它预编译的静态资产。 您必须配置您使用的Web服务器(即nginx)为您提供这些静态资产而不是rails。 我希望这些文件更加清晰。


0
投票

你能否确认一下

<%= stylesheet_link_tag "application" %>

在应用程序布局的头部分而不是像:

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

这样可以确保包含预编译的application-xxx.css。

© www.soinside.com 2019 - 2024. All rights reserved.