我刚刚开始处理现有项目,我遇到了一些问题,需要在localhost上加载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。 有关从哪里开始排除故障的任何想法?我已经花了一天时间试图解决这个问题(可能非常简单)。
答案 0 :(得分:0)
你还试过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
。
答案 1 :(得分:0)
通过做两件事来解决这个问题:
首先:降级到ruby 1.9.3和
第二:如上所述,添加
//= require jquery_ujs
到清单js文件
感谢您的帮助。