2011-10-01 107 views
1

好吧Im一般來說新的rails,這些默認的加載器和緩存加載器是他們對我有意義的所有東西。但我的問題是。如果我想在特定頁面上包含某個JS文件或2或特定腳本,我該怎麼做。rails包括JavaScript或僅在某些頁面上的文件

與導軌我有 app/views/layouts/application.html.erb在這個文件我收集是我的網站/服務的基本模板,並在那裏我會把所有的運動部件。不過,我偶爾需要在特定頁面上只需加載一個JavaScript文件。但它需要在jquery文件之後調用,以便在我要加載的文件之前將jquery加載到內存中。所以我不完全確定我會怎麼做。在佈局的原因我有JavaScript的加載程序行,無論它正是我不記得,但它的:默認沒有那麼少,這意味着jQuery和應用程序將默認從API告訴我加載出來。

這使我想到另一個問題,最初設置rails服務器的人我們已經添加了一個默認文件,我想模仿,但不知道如何。

回答

3

最簡單的方法是將腳本文件包含在您需要的視圖中。 jQuery將已經在佈局中加載。 或者,您可以使用content_for,就像ctcherry提到的那樣。您可以在這裏找到更詳細的解釋:Javascript Include Tag Best Practice in a Rails Application

此外,關於你的最後一個問題,我不知道我的理解是正確的,但你可以通過一個逗號分隔javascript_include_tag添加更多選項:

javascript_include_tag :defaults, "my_other_file", "etc" 
3

content_for可以幫助你,你看那包括一段代碼的例子:<%= yield :script %>

或者,想辦法讓JS代碼來檢測,如果它開始正確的頁面(也許一個類上執行或身份標記上設置的ID),並且只有在符合條件時才執行。然後,您可以在整個首頁加載時將整個JavaScript集合壓縮並縮小到用戶的瀏覽器,從而提高網站的性能。

-1


可以用於此:

<head> 
<title>My blog</title> 
<%= yield(:head) -%> 
</head> 

而且從視圖中有發送:

<%- content_for(:head) do -%> 
<%= javascript_include_tag :defaults -%> 
<%- end -%> 

這是很好的工作!