2016-09-20 38 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”)'行,问题正在发生。似乎无法弄清楚发生了什么事:/ –

相关问题