【问题标题】:Rails is not precompiling javascriptsRails 没有预编译 javascripts
【发布时间】:2014-10-02 21:39:49
【问题描述】:

我刚刚开始处理现有项目,但在将 jquery 加载到 localhost 时遇到了一些问题。部署的站点似乎运行良好,所以我有点不知道从哪里开始解决这个问题。

在我得到的控制台中:

Uncaught ReferenceError: $ is not defined localhost

jquery 似乎没有加载,但它包含在 gemfile 中。

在控制台中,base.js 文件显示如下:

//= require jquery
//= require sass-bootstrap-3/dist/js/bootstrap
//= require modernizr
//= require respond
//= require lodash
;

我认为它应该显示脚本的编译版本。

在控制台中运行它表明 jquery 确实存在。

Rails.application.config.assets

--- !omap
- :enabled: true
- :paths:
  - /Users/000/app/assets/ebooks
  - /Users/000/app/assets/fonts
  - /Users/000/app/assets/images
  - /Users/000/app/assets/javascripts
  - /Users/000/app/assets/stylesheets
  - /Users/000/vendor/assets/javascripts
  - /Users/000/vendor/assets/stylesheets
  - /Users/000/.gem/ruby/2.0.0/gems/client_side_validations-3.2.6/vendor/assets/javascripts
  - /Users/000/.gem/ruby/2.0.0/gems/coffee-rails-3.2.2/lib/assets/javascripts
  - /Users/000/.gem/ruby/2.0.0/gems/jquery-rails-3.0.4/vendor/assets/javascripts
  - !ruby/object:Pathname
    path: /Users/000/app/assets/fonts
- :precompile:
  - !ruby/object:Proc {}
  - !ruby/regexp /(?:\/|\\|\A)application\.(css|js)$/
  - !ruby/regexp /(^[^_\/]|\/[^_])[^\/]*$/
  - !ruby/regexp /\.(?:svg|eot|woff|ttf)$/
- :prefix: /assets
- :version: '1.0'
- :debug: true
- :compile: true
- :digest: false
- :manifest:
- :cache_store:
  - :file_store
  - /Users/000/tmp/cache/assets/
- :js_compressor:
- :css_compressor: !ruby/object:Sass::Rails::CssCompressor
    options:
      :style: :compressed
- :initialize_on_precompile: true
- :logger:
- :compress: true
- :digests: {}
- :source_digests: {}

我正在使用 Rails 3.2.5 和 jquery-rails 3.0.4。 关于从哪里开始解决这个问题的任何想法?我已经花了一天时间试图解决这个问题(可能非常简单)。

【问题讨论】:

    标签: javascript jquery ruby-on-rails asset-pipeline


    【解决方案1】:

    您是否也尝试过http://guides.rubyonrails.org/v3.2.19/asset_pipeline.html#precompiling-assets?检查您对预编译资产的设置可能会有所帮助。

    除此之外,您是否错过了//= require jquery_ujs 这条线? https://github.com/rails/jquery-rails 指定 //= require jquery//= require jquery_ujs

    【讨论】:

      【解决方案2】:

      通过做两件事解决了这个问题:

      首先:降级到 ruby​​ 1.9.3 和 第二:如上所述,添加 //= require jquery_ujs 到清单 js 文件

      感谢您的帮助。

      【讨论】:

        猜你喜欢
        • 2013-06-07
        • 2014-07-12
        • 1970-01-01
        • 1970-01-01
        • 2013-08-09
        • 2012-08-16
        • 2019-08-21
        • 2012-04-23
        相关资源
        最近更新 更多