Service Worker 使用 Flask Blueprints 缓存资源

Service Worker caching resources with Flask Blueprints

我正在使用 Flask 作为网络框架。我在我的 service worker 定义中定义了一个 html 资源,如下所示

var urlsToPrefetch = [
    'webapp/templates/practice/foopage.html',
];

这工作正常。

使用 Flask Blueprintsfoopage.html 在用户访问 https://example.com/practice/foopage 时呈现给他们。 Blueprint 名称是 "practice"。

对应路线如下:

@practice.route('/foopage', methods=['GET'])
def foopage():
    return render_template('practice/foopage.html')

问题是在 service worker 的 fetch eventListener 中将 event.request.url 显示为 https://example.com/practice/foopage

这在缓存中找不到,因为我必须使用其实际路径定义 html 文件。

有没有办法将文件名映射到应用程序中使用的路由?或者我需要换个角度思考这个问题吗?

您混淆了模板的路径,这是服务器端的事情,urls 被路由到视图。就客户端而言,来自 /foopage 的响应就是文档,而该文档是如何在服务器端生成的并不重要。

将 url 指定为资源 /foopage 作为要预取的内容。