2016-09-20 42 views
0

我在/app/vendor/assets/javascripts/路徑中的Rails應用程序中有2個JavaScript文件。假設這些文件是jsfile-1.jsjsfile-2.js。在jsfile-2.js我有我在我看來(views/name/name.html.erb)使用這兩個文件下面的代碼如何在Rails中的另一個JavaScript文件中使用JavaScript文件路徑

var myWorker = new Worker("jsfile-1.js"); 

first.onchange = function() { 
    myWorker.postMessage([first.value,second.value]); 
    console.log('Message posted to worker'); 
} 

。在將這兩行我/app/assets/javascripts/application.js

//= require jsfile-1 
//= require jsfile-2 

現在,當我訪問http://localhost:3000/name/name的頁面(在我的情況,控制器名稱相同動作的名稱),我收到我的檢查元素控制檯(在Firefox以下錯誤瀏覽器):

GET http://localhost:3000/name/jsfile-1.js [HTTP/1.1 404 Not Found 541ms] 
NetworkError: Failed to load worker script at "jsfile-1.js" 

如果我寫的new Worker("javascripts/jsfile-1.js")代替new Worker("jsfile-1.js"),想必我得到這個錯誤,而不是:

GET http://localhost:3000/name/javascripts/jsfile-1.js [HTTP/1.1 404 Not Found 541ms] 

我嘗試了許多不同的路徑,似乎沒有任何工作。什麼是正確的道路?

回答

0

很少有事情要記住......

  1. 如果您在application.js添加 JS文件,..你不需要在視圖文件再次添加它們。
  2. 如果您沒有在application.js中添加 js文件,那麼您必須將它們添加到asset.rb中,然後在需要的任何地方將它們放入您的視圖文件中。

Now..as您在application.js已經添加的文件,它們都將提供並準備use.You可以通過雙方你添加的警報驗證這個js文件,他們都將觸發。

因此,無論您的控制器/操作名稱如何,它們都將被加載。

Rails controller specific assets ....這可能會有所幫助。

+0

JavaScript文件本身加載就好了,因爲我將它們添加到'application.js'中。由於'var myWorker = new Worker(「jsfile-1.js」)'行,問題正在發生。似乎無法弄清楚發生了什麼事:/ –

相關問題