2014-06-11 78 views
0

首先,我有以下鏈輪目錄設置:混淆供應商文件夾

的application.js

//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

application.css

*= require_self 
*= require_tree . 

然而,在一個簡單的測試文件供應商,

console.log('I\'ve been loaded,baby!'); 

是不是由鏈輪加載?如果我將它移動到應用程序/資產/ js是可行的,但不是在供應商。我需要設置哪些指令才能使其工作?他們必須單獨需要嗎?

即使在開發中,我是否需要預編譯?

另外,vendor中沒有images目錄。許多第三方腳本都有演示圖像。我實際上更喜歡他們在vendor/images而不是app/assets/images。這可以設置嗎?

+0

如果從Rails 3的升級,請考慮到下的lib /資產或供應商的資產/資產可用於通過應用程序清單包括但預編譯陣列的部分不再。有關指導,請參閱預編譯資產。 – cristian

回答

0

按照Rails的指南

管道資產可以有三種 位置一個被放置在應用程序中:應用程序/資產,LIB /資產或供應商/資產

確保您將資產置於上述其中一個位置。

要回答您的疑問:

如果我移動它到應用程序/資產/ JS是作品的話,但不是在供應商。

它的工作原理,因爲application.js指定的require_tree指令,它加載在當前目錄中所有存在的JavaScript文件(的application.js)即有,app/assets/javascripts

//= require_tree . 

上述指令並不加載來自vendor/assets/javascripts的JavaScript文件,這是它在vendor中不起作用的原因。

我需要設置哪些指令才能使其工作?他們必須單獨需要嗎?

是的,你必須明確地要求他們在application.js

假設你vendor/javascripts/abc_vendor.jsvendor/stylesheets/abc_vendor.css

然後application.js你將不得不增加

//= require abc_vendor 

application.css

*= require abc_vendor 

許多第三方腳本有試玩影像跟他們。我實際上更喜歡他們在供應商/圖像,而不是應用程序/資產/圖像。可以設置 嗎?

是的。它可以設置。只需在vendor/assets目錄中創建文件夾images。在該文件夾中添加供應商圖像。假設您在vendor/assets/images目錄中添加了abc_logo.jpg。重新啓動服務器。並訪問圖像:

<%= image_tag "abc_logo.jpg" %> 
+0

謝謝,這是讓我重新開始 – Starkers

+0

很高興幫助:) –