我想在我的Ruby on Rails应用程序中使用服务工作者。Ruby on Rails&服务工作者
我需要在我的app/javascripts/service-worker.js.erb
文件中使用一些erb功能。服务人员注册脚本如下所示:
var registerServiceWorker = function() {
navigator.serviceWorker.register(
'<%= asset_path('service-worker.js') %>',
{ scope: '/assets/' }
)
.then(function() {
console.info('Service worker successfully registered');
})
.catch(function(error) {
console.warn('Cannot register sercie worker. Error = ', error);
});
}
这是行不通的;我从来没有答应这里:
navigator.serviceWorker.ready.then
我也试过./
和/
范围,但我得到这个错误:
DOMException: Failed to register a ServiceWorker: The path of the provided scope ('/') is not under the max scope allowed ('/assets/'). Adjust the scope, move the Service Worker script, or use the Service-Worker-Allowed HTTP header to allow the scope.
如果我提出我的service-worker.js
到public
文件夹,删除.erb
延伸和变化范围到./
,一切都很好,但我没有模板引擎。
有什么建议吗?
是否在以后的答复中提到的serviceworker护栏宝石(http://stackoverflow.com/a/36849798/1299792)解决您上面提到的障碍是什么? – Marklar
@Marklar我之前没有使用过那个gem,但是,在Github看来,它似乎解决了所有的障碍,除了浏览器对服务工作者的支持仍然很差的事实。如果我正在使用服务人员构建一个新的Rails应用程序,我一定会检查出来。 – John