我在
<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/assets/application.js" type="text/javascript"></script>
但是当我去http://localhost:3000/assets/application.css
Routing Error
No route matches [GET] "/assets/application.css"
P.S。 Rails 3.1.0.rc4,ruby 1.8.7
答案 0 :(得分:3)
似乎Sprockets / Rails 3.1正在为我执行w / ruby 1.9.2-p180 ...更新到Ruby-1.9.2-p290似乎可以解决这个问题。
可能与您的问题无关......但对于使用这些版本的Rails&amp;红宝石。
答案 1 :(得分:3)
我发现今天晚上更新到Rails 3.1后我发生了类似的事情。我正在开发一个没有使用ActiveRecord的项目,所以我修改了我的application.rb
来排除它。通常读取require 'rails/all'
的行只包含我需要的部分,如下所示:
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"
这个列表在Rails 3.1中已经改变,包括Sprockets,它是使资产管道工作的核心组件。通过将此行添加到列表底部,我获得了按预期提供服务内容的资产管道:
require "sprockets/railtie"
重新启动后,/assets/application.js
和其他资产开始按预期工作。
注意:如果你有这样的自定义设置,请务必打开railties
gem并查看可能已更改的lib/rails/all.rb
内容(如本例所示)。
答案 2 :(得分:1)
您的脚本和样式将从公用文件夹加载。删除公共资产文件夹,你应该好好去。
答案 3 :(得分:1)
在应用程序布局文件中,如果您有
<%= stylesheet_link_tag "/assets/application" %>
给出了
No route matches [GET] "/assets/application.css"
尝试将其更改为
<%= stylesheet_link_tag "application" %>
答案 4 :(得分:1)
我必须在application.rb中添加以下行:
config.assets.enabled = true
类应用程序底部&lt;导轨::应用