我已经通过将简单的script
标签放置在我的home.html.erb
文件底部的jQuery测试了我的Rails应用程序的功能。一切工作正常,直到我试图利用资产Pipleine对Rails 3.1和地点内app/javascripts/home.js.erb
Rails 3.1中的Javascript文件资产管道
任何脚本知道为什么我不能得到的JavaScript到home.html.erb文件外工作
我已经通过将简单的script
标签放置在我的home.html.erb
文件底部的jQuery测试了我的Rails应用程序的功能。一切工作正常,直到我试图利用资产Pipleine对Rails 3.1和地点内app/javascripts/home.js.erb
Rails 3.1中的Javascript文件资产管道
任何脚本知道为什么我不能得到的JavaScript到home.html.erb文件外工作
至于我正在寻找做什么,这是不同的意见单独的JavaScript文件,我没有成功。我尝试了不同的命名约定等。
但是,对我有效的是,将所有的javascript放在application.js
之内。这样做可以使整个应用程序的每个视图都可以访问这些代码。根据您的需求和您的应用程序,您可能希望将脚本放在[your-model-name].js.coffee
之内,这将使其可访问(我认为只是针对您的特定控制器和视图)。由于我的应用程序是单个模型/控制器设置,这基本上是一样的。
然后,这是一个慎重使用选择器的问题,以免无意中干扰其他页面。换句话说,如果你想让一段代码在一个特定的视图中运行,而不是另一个,你将不得不相应地调整你的.js代码,因为application.js
中的所有内容都可以被所有视图访问。
你可以在application.html.erb中添加脚本标记,并且在所有页面中都会有jquery。 你可以通过这种方式添加脚本:(你应该添加jQuery的1.7.min文件夹的应用程序/ JavaScript的)
<%= javascript_include_tag 'jquery-1.7.min'%>
不要把home.js.erb在应用程序/ JavaScript的但home.js.erb提取您的jQuery和投入应用程序/资产/ Java脚本/ home.js
添加config.assets.precompile + =%W(* .js文件)到config/environments/product ion.rb或的config/application.rb中全球ENV(测试/开发/生产)
比应用程序/资产/ Java脚本/ application.js中有
//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .
调用它与javascript_include_tag从视图
...最后“应用”,不要忘记宝石“jQuery的轨道”添加到您的Gemfile并运行捆绑
感谢您的建议...我会试试这个。 – pruett
这不是一个在应用程序上使用jquery的问题,我主要讨论在哪里放置我的自定义jQuery脚本......这有道理吗?因为(我认为)jQuery在所有rails 3.1应用程序中自动加载,对吗? – pruett
看看这个链接,http://guides.rubyonrails.org/asset_pipeline.html。脚本的可见性取决于您放置的位置。 lib /资产,应用程序/资产或供应商/资产 – JAiro
即时通讯相当肯定清单文件行'// = require_tree .'在目录中添加所有javascript文件 – pruett