![](/img/trans.png)
[英]Rails 4 asset pipeline Heroku production javascript reference issue
[英]Rails Javascript 404s in production (asset pipeline)
我將Adobe Edge與Rails結合使用,並在生產服務器上獲取一些Javascript文件的404(所有功能在開發服務器上都可以正常工作)。
這些是我的JavaScript文件
application.js
edge.1.5.0.min.js
ink-falling_edge.js.erb
ink-falling_edgeActions.js
ink-falling_edgePreload.js.erb
在application.js中
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
edge.1.5.0.min.js
, ink-falling_edge.js.erb
和ink-falling_edgeActions.js
無法加載。 它們應該由ink-falling_edgePreload.js.erb
動態加載。
在ink-falling_edgePreload.js.erb
我有:
function loadResources(a,d) {
AdobeEdge.preload = AdobeEdge.preload || [];
AdobeEdge.preload.q = AdobeEdge.preload.q || [];
d || !isCapable() ? filesToLoad = a : AdobeEdge.preload.busy ? AdobeEdge.preload.q.push({files:a, callback:edgeCallback}) : AdobeEdge.requestResources(a,edgeCallback)
}
aLoader = [
{ load: "<%= asset_path('edge.1.5.0.min.js') %>" },
{ load: "<%= asset_path('ink-falling_edge.js.erb') %>" },
{ load: "<%= asset_path('ink-falling_edgeActions.js') %>" }];
doDelayLoad=false;
loadResources(aLoader, doDelayLoad);
我只修改了aLoader
使用asset_path
,其余產生的Adobe邊緣的代碼。
當我加載頁面時。 我在Javascript控制台中得到了這個:
GET http://.../assets/ink-falling_edge-deca9b287a7502bef69078b737f58a0b.js 404 (Not Found) application-419438724fb62a953134d8263f3f4882.js:8
GET http://.../assets/ink-falling_edgeActions-9bdaa1845a29b15bd2562058432de721.js 404 (Not Found) application-419438724fb62a953134d8263f3f4882.js:8
GET http://.../assets/edge.1.5.0.min-610ab04bb1d4d0ad9a2a845821f04bdf.js 404 (Not Found) application-419438724fb62a953134d8263f3f4882.js:8
GET http://.../assets/edge.1.5.0.min-610ab04bb1d4d0ad9a2a845821f04bdf.js 404 (Not Found) application-419438724fb62a953134d8263f3f4882.js:8
GET http://.../assets/ink-falling_edge-deca9b287a7502bef69078b737f58a0b.js 404 (Not Found) application-419438724fb62a953134d8263f3f4882.js:8
GET http://.../assets/ink-falling_edgeActions-9bdaa1845a29b15bd2562058432de721.js 404 (Not Found) application-419438724fb62a953134d8263f3f4882.js:8
如果我注釋掉了動態加載部分,則Adobe Edge動畫將不起作用。
在引用導致404錯誤的這些Javascript文件時,我做錯了什么?
謝謝!
我不能肯定地說,但是我懷疑您沒有更新application.rb來將這些文件預編譯為獨立JS。
您需要使用直接URL訪問的任何Javascript或CSS文件(這是您的加載腳本正在執行的操作)都需要添加到application.rb中的config.assets.precompile中。 因此,您需要添加以下行:
config.assets.precompile += %w[edge.1.5.0.min.js ink-falling_edge.js ink-falling_edgeActions.js]
默認情況下,JavaScript文件不會預先編譯為顯示在URL上的資產-它們只是被卷入application-.js和其他使用清單的控制器特定的js文件中。 如果要直接訪問URL,則需要將其添加到此列表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.