Python烧瓶应用程序中的服务工作者 - 未选中runtime.lastError:无法建立连接。接收端不存在

时间:2018-03-06 19:21:07

标签: javascript flask service-worker

我能够成功注册服务工作者但是当我尝试一个简单的控制台日志时,我得到以下结果 - 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')

2 个答案:

答案 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