Rails 3.2.8 - 不加载资产(开发)

时间:2014-08-18 09:38:35

标签: ruby-on-rails ruby ruby-on-rails-3

我已经四处搜寻,无法根据对其他类似问题的回答纠正这种​​情况。我似乎以某种方式破坏了资产管道,但似乎无法弄清楚如何。

我的资产根本没有被装载; 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'

4 个答案:

答案 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资产管道时,请记住两件事: -

  1. 如果您希望所有新创建的js / css在application.js/css中自动包含,请将它们添加到... 的 ELSE
  2. 如果您不想添加manifest文件(application.js/css),请在yuur环境文件中使用precompile directive

    config.assets.precompile=%w(custom.css,custom2.js...etc)

  3. 所以请确保您拥有其中任何一个......

    ===========例如= - =============

    假设您有新的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