2014-04-14 27 views
0

我正在嘗試添加一個庫js(S3Slider)到我的rails 4項目。根據大多數文檔,這應該被添加到vendor/assets/javascripts/目錄。 據http://guides.rubyonrails.org/asset_pipeline.html#asset-organization,我的JavaScript文件添加到對vendor/assets/javascripts/s3slider/s3slider.jsapplication.js文件中像這樣引用它:rails 4 assets pipeline-- javascript not found

//= require s3slider 

在Rails的文檔中給出的具體例子是

vendor/assets/somepackage/phonebox.js 

會被引用通過

//= require phonebox 

不過,我得到一個錯誤:

couldn't find file 's3slider' 
(in /home/julio/rails_projects/demo_app/app/assets/javascripts/application.js:18) 

我停止了rails服務器並重新啓動它,但錯誤仍然存​​在。我究竟做錯了什麼?

編輯:將s3slider.js文件移出s3slider目錄使能導軌找到它。然而,仍然不清楚爲什麼官方文檔中的例子說你可以使用這樣的目錄結構。

回答

0

鑑於你有s3slider.js文件的文件夾裏面有你有相同的名字:

//= require s3slider/s3slider 

或指令添加到文件夾:

//= require_tree s3slider 

資產管道正在搜索文件s3slider直接在javascripts文件夾中。這就是你出錯的原因。

+0

@cortex--謝謝。所以這只是rails文檔中的一個錯誤,而'phonebox'指令應該真的是'// = require somepackage/phonebox'? – user101289

+0

沒有錯誤。例如Rails docs中的'somepackage'就是'javascripts'。並添加到'application.rb'中的'config.assets.paths'。如果適合您,請考慮將答案標爲已接受;) – cortex