2013-08-16 39 views
1

我的供應商文件夾中有一個名爲hammer.js的文件,我想保留我的第三方js在vendor/assets/javascripts和所有自制的東西在app/assets/javascriptsRails 3.2包括供應商第三方javascripts

但是,當預編譯我的資產軌道不會從供應商處獲取我的資產。在我的清單文件中,我指定//= require vendor沒有工作,所以我嘗試//= require hammer,我試着從我讀的這些解決方案中嘗試//= require hammer.js似乎對其他人有效。但它沒有加載它

注意:我做bundle exec rake assets:precompile每次和檢查公共資產,我渲染頁面,並在每次嘗試替代時查看加載的資源。

編輯

//= require jquery 
//= require jquery.ui.all 
//= require jquery_ujs 
//= require_tree ../../../vendor/assets/javascripts 
//= require_tree . 

,所以我嘗試這樣做。但它仍然沒有加載

的配置/環境/ production.rb內,我有以下

# Code is not reloaded between requests 
config.cache_classes = true 

# Full error reports are disabled and caching is turned on 
config.consider_all_requests_local  = false 
config.action_controller.perform_caching = true 

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

# Compress JavaScripts and CSS 
config.assets.compress = true 

# Don't fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = false 

# Generate digests for assets URLs 
config.assets.digest = true 

對不起,這將是我第一次在軌建立了JS。

回答

2

嘗試加載它們如下(注意路徑):

//= require_tree ../../../vendor/assets/javascripts 
+0

有沒有辦法可能參考供應商內的清單,然後簡單地引用它。爲什麼在進入應用程序目錄之前需要'../../../'?對不起,這可能是一個愚蠢的問題。只想嘗試瞭解它背後的計算機科學? – TheLegend

+0

我還沒有嘗試過多個清單,我沒有意識到它,但一定會考慮它。對於第二部分,我想'../../../'的原因是清單在'app/assets/javascripts'中,所以有三個層次。 – vee

+0

@ TheLegend,確認,多種清單是可能的。所以是的,你可以在'vendor/assets/javascripts'中創建一個清單,並引用'// require require ../../../ vendor/assets/javascripts/my_manifest' – vee

1

如果你想hammer.js被預編譯爲一個分隔的文件,你應該改變config/environments/production.rbconfig.assets.precompile,我猜。

config.assets.precompile += %w{ hammer.js },你會看到public/assets/hammer.js

+0

我有'config.assets。編譯= false「將其更改爲以前的方式。爲什麼他們現在默認資產管道忽略供應商資產? – TheLegend

相關問題