Rails项目中的Web工作者

我尝试使用Web worker同时运行多个javascript代码。 为了启动worker,我将以下内容放入我的javascript代码部分:

var worker = new Worker("my_task.js"); worker.onmessage = function(e) { console.log('Worker said: ', e.data); }; worker.postMessage("test"); 

my_task.js与保存上述代码的文件位于同一文件夹中。 这就是my_task.js的样子:

 self.addEventListener('message', function(e) { self.postMessage(e.data); }, false); 

但Ruby on Rails(版本3.2.1)似乎存在问题:

 Started GET "/users/my_task.js" for 127.0.0.1 at ... ... ... ActiveRecord::RecordNotFound (Couldn't find User with id=my_task) 

如您所见,Rails尝试在脚本启动时发送http get请求。
我怎么解决这个问题? 有没有更好的方法在Rails项目中使用Web worker?

谢谢

  • 将my_task.js放在/public/javascripts
  • 在创建worker的javascript代码中,使用以下ERB: var worker = new Worker("<%= javascript_path "my_task.js" %>");
  • .erb添加到上面找到的javascript代码的任何文件的扩展名中。所以如果它是mypage.js ,它就变成了mypage.js.erb

上面的内容适用于Rails 4.2.0,ruby 2.0.0p598

将my_task.js放在公用文件夹中。

使用上面的<%javascript_path%>

和lib / assets / javascripts使用Rail5为我工作