【问题标题】:Rails 3.2.8 - not loading assets (development)Rails 3.2.8 - 不加载资产(开发)
【发布时间】:2017-08-14 08:10:25
【问题描述】:

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

我的资产根本没有加载; rails 似乎只是忽略了我的清单文件。当我在 firebug 中检查我的页面时,只显示我的清单文件(js 和 css)中的“未编译”文本 - 几乎就像资产管道甚至没有启用一样。

我删除了 public/assets 的内容,因为我正在向清单中添加一个新文件,这似乎开始了这种行为。

当前配置:

environments/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'

【问题讨论】:

  • 这个好像和js或者jquery没什么关系。
  • 资产在开发模式下默认不编译。
  • @parchment - 我的错误,我把它放在那里是因为它是 javascript/jquery 没有加载。你是对的 - 这是一个 Rails 问题。
  • @GhostRider 阅读资产管道的 Rails 文档后,我相信 app/assets 中的资产将根据选项“config.assets.debug = true”加载到单独的脚本标签中?如果我错了,请纠正我。

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


【解决方案1】:

我遇到了同样的问题。您仍然可以使用 Ruby 2.1.2,只需将 rails 升级到最新的 3.2.x 版本 - 它是 3.2.22

宝石文件:

gem 'rails', '3.2.22'

然后运行:

$ bundle update rails

【讨论】:

    【解决方案2】:

    该问题是由使用不兼容的 ruby​​ 版本引起的。我使用的是 2.1.2 版本,它导致 sprockets gem(为资产管道提供动力)出现异常行为。这是通过降级到 ruby​​ 1.9.3 来解决的。由于害怕再次破坏它,我没有进行任何实验,但也许这已在更高版本的 sprockets 中得到解决。我正在使用 sprockets 2.1.3。

    见:Rails 3.2.8 Application.js and Application.css are not working as expcted

    【讨论】:

      【解决方案3】:

      当你想处理 Rails 资产管道时,请记住两件事:-

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

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

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

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

      假设你有新的css/js 文件:- custom.css 里面

      app/assets/stylesheets/
      

      所以你可以包含在

      application.css
      
      // = require 'custom'
      

      使用预编译指令:-

      config.assets.precompile += %w( custom.css )
      

      然后像往常一样引用它

      stylesheet_link_tag "custom"
      

      同样适用于js

      【讨论】:

      • 我的所有 js 都包含在清单中 - 它只是没有被加载。我有所有必要的 //= 要求行。
      【解决方案4】:

      我只花了几个小时解决这个问题(在 2017 年!),结果我只需要删除 gem active_reload。更新 rails 和 ruby​​ 对我没有任何影响。我发现黄金的线索在这里: https://github.com/rails/rails/issues/2715

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-23
        • 1970-01-01
        相关资源
        最近更新 更多