我已经四处搜寻,无法根据对其他类似问题的回答纠正这种情况。我似乎以某种方式破坏了资产管道,但似乎无法弄清楚如何。
我的资产根本没有被装载; rails似乎只是忽略了我的清单文件。当我在firebug中检查我的页面时,只显示我的清单文件(js和css)中的“非编译”文本 - 几乎就像资产管道甚至没有启用一样。
我删除了public / assets的内容,因为我在清单中添加了一个新文件,似乎开始了这种行为。
当前配置:
环境/ development.rb
# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = true
application.rb中
# Enable the asset pipeline
config.assets.enabled = true
config.assets.manifest = config.root
# Add extra assets for precompiling
config.assets.precompile += ['admin.js', 'admin.css']
# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
答案 0 :(得分:4)
我有同样的问题。您仍然可以使用Ruby 2.1.2,只需将rails升级到最新的3.2.x版本 - 它的3.2.22
的Gemfile:
gem 'rails', '3.2.22'
并运行:
$ bundle update rails
答案 1 :(得分:3)
问题是由使用不兼容的ruby版本引起的。我使用的是版本2.1.2,它导致sprockets gem(为资产管道提供动力)的异常行为。这是通过降级为红宝石1.9.3来解决的。我没有做过任何试验,因为害怕再次破坏它,但也许这已经在后面版本的链轮中解决了。我正在使用链轮2.1.3。
请参阅:Rails 3.2.8 Application.js and Application.css are not working as expcted
答案 2 :(得分:1)
当您想要处理Rails资产管道时,请记住两件事: -
application.js/css
中自动包含,请将它们添加到...
的 ELSE 强> 如果您不想添加manifest
文件(application.js/css
),请在yuur环境文件中使用precompile directive
。
config.assets.precompile=%w(custom.css,custom2.js...etc)
所以请确保您拥有其中任何一个......
===========例如= - =============
假设您有新的css/js
文件: -
<{1}}里面
custom.css
所以你可以加入
app/assets/stylesheets/
或
使用预编译指令: -
application.css
// = require 'custom'
然后像你一直那样引用它
config.assets.precompile += %w( custom.css )
同样适用于js
答案 3 :(得分:0)
我只花了几个小时来解决这个问题(2017年!),事实证明我只需要删除gem active_reload
。更新rails和ruby对我没有任何影响。我发现黄金在这里的线程:
https://github.com/rails/rails/issues/2715