我正在尝试在我的 Ruby on Rails 应用程序中使用服务工作者。
我需要在我的app/javascripts/service-worker.js.erb
文件中使用一些 erb 功能。Service Worker 注册脚本如下所示:
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:注册 ServiceWorker 失败:提供的范围 ('/') 的路径不在允许的最大范围 ('/assets/') 之下。调整范围,移动 Service Worker 脚本,或者使用 Service-Worker-Allowed HTTP 标头来允许范围。
如果我将我service-worker.js
的移动到public
文件夹,删除.erb
扩展名并将范围更改为./
,一切正常,但我没有模板引擎。
有什么建议么?