Rails没有预编译javascript

Rails is not precompiling javascripts

本文关键字:编译 javascript Rails      更新时间:2023-09-26

我刚开始处理一个现有项目,在本地主机上加载jquery时遇到了一些问题。部署的站点似乎运行良好,所以我有点困惑于从哪里开始解决这个问题。

在控制台中,我得到:

未捕获的ReferenceError:$未定义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。关于从哪里开始排除故障,有什么想法吗?我已经花了一天的时间试图解决这个问题(可能是非常简单的解决方案)。

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

除此之外,可能是您错过了线路//= require jquery_ujs吗?https://github.com/rails/jquery-rails指定了CCD_ 2和CCD_。

这是通过做两件事来解决的:

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

谢谢你的帮助。