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为我工作