簡體   English   中英

Rails 3.1 Asset Pipeline中的Javascript文件

[英]Javascript files in Rails 3.1 Asset Pipeline

我已經通過使用簡單的script標記將jQuery放在home.html.erb文件的底部來測試了Rails應用程序的功能。 一切正常,直到我嘗試在Rails 3.1中利用Asset Pipleine並將腳本放在app/javascripts/home.js.erb

任何人都知道為什么我無法讓javascript在home.html.erb文件之外運行

您可以在application.html.erb中添加腳本標簽,然后所有頁面中都將包含jquery。 您可以通過以下方式添加腳本:(您應該在app / javascript文件夾中添加jquery-1.7.min文件)

    <%= javascript_include_tag 'jquery-1.7.min'%> 

不要將home.js.erb放入app / javascript中,而是從home.js.erb中提取您的jquery並放入app / assets / javascripts / home.js中

config.assets.precompile + =%w(* .js)添加config / environments / production.rb或在config / application.rb中添加全局環境(test / dev / prod)

app / assets / javascripts / application.js中的

//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .

從視圖中使用javascript_include_tag“ application”進行調用

...最后,不要忘了將gem'jquery -rails'添加到您的Gemfile並運行

就我想做的是針對不同視圖的單獨javascript文件而言,我沒有成功。 我嘗試了不同的命名約定,等等。

但是對我有用的是,將我所有的javascript都放在application.js 這樣做使整個應用程序中的每個視圖都可以訪問此代碼。 根據您的需求和您的應用程序,您可能希望將該腳本放入[your-model-name].js.coffee ,以使其可訪問(我認為僅適用於您的特定控制器和視圖)。 由於我的應用是單個模型/控制器設置,因此本質上是相同的。

然后,要謹慎使用選擇器,以免無意間干擾其他頁面。 換句話說,如果您希望一段代碼在一個特定視圖中運行而不在另一個特定視圖中運行,則由於所有視圖都可以訪問application.js中的所有內容,因此您將必須相應地調整.js代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM