【发布时间】:2015-05-02 21:16:41
【问题描述】:
我正在尝试在我的 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 扩展并将范围更改为./,一切正常,但我没有模板引擎。
有什么建议吗?
【问题讨论】:
标签: javascript ruby-on-rails html service-worker