我能够成功注册服务工作者但是当我尝试一个简单的控制台日志时,我得到以下结果 - dev tools screenshot
它看起来像某种路由错误,但我不知道如何解决它。
我的代码看起来像这样
offering.js文件
if ('serviceWorker' in navigator) {
// Register a service worker hosted at the root of the
// site using a more restrictive scope.
navigator.serviceWorker.register('/static/js/sw.js').then(function() {
console.log('Service worker registration succeeded:');
}).catch(function() {
console.log('Service worker registration failed:');
});
} else {
console.log('Service workers are not supported.');
}
sw.js文件
console.log('Hello')
答案 0 :(得分:1)
将此代码添加到路线文件中:
@app.route('/sw.js', methods=['GET'])
def sw():
return app.send_static_file('sw.js')
然后,将sw.js
文件直接放在static
目录中,而不是js
目录中。在offerings.js
文件中,使用相对路径(即../sw.js
)。如果有效,请告诉我。
答案 1 :(得分:0)
我通过编写以下代码设法使其运行
from flask import make_response, send_from_directory
@app.route(‘/sw.js’)
def sw():
response = make_response(send_from_directory(‘static’, file name=‘sw.js’))
#change the content header file
response.headers[‘Content-Type’]=‘application/javascript’
return response