使用 Flask 和 PythonAnywhere 路由到 Service-Worker
Routing to a Service-Worker with Flask and PythonAnywhere
我是 Flask 的新手,正在构建我的第一个网络应用程序。当从本地主机 运行 时,我的服务工作者注册正常,但是当我将应用程序部署到 pythonanywhere 时。要构建它,请遵循 www.flaskpwa.com 上的过程。这是我得到的:
我的 sw.js 文件位于静态文件夹中。
我有一个服务 service worker js 文件的路由:
@app.route('/sw.js')
定义开关():
return app.send_static_file('sw.js')
在我的 PythonAnywhere“Web”页面上,我有一个名为 /static/ 的静态文件路径指向静态文件夹。
我的 app.js 文件正在使用以下方式注册服务工作者:
navigator.serviceWorker.register('./sw.js')
加载我的网络应用程序时,我的控制台 return 出现以下两个错误:
获取脚本时收到错误的 HTTP 响应代码 (404)。
无法注册服务工作者。 TypeError:无法使用脚本 ('https://xxxxx.pythonanywhere.com/sw.js') 为范围 ('https://xxxxx.pythonanywhere.com/') 注册 ServiceWorker:获取脚本时收到错误的 HTTP 响应代码 (404)。
我很确定我的问题出在 Flask 路由上,因为我在尝试从浏览器指向 xxxxx.pythonanywhere.com/sw.js 时遇到相同的 404 错误。我一直在努力纠正这一点。
感谢您的意见。
如果您在尝试从浏览器访问 https://xxxxx.pythonanywhere.com/sw.js
时遇到 404 错误,那么这不是您的 Flask 路由——这是您的静态路由。如果您有一个静态文件映射,其中“URL”设置为 /static
,那么它只会接收以 https://xxxxx.pythonanywhere.com/static
.
开头的请求
如果您想专门为文件 sw.js
设置一个静态路由,并且您希望它可以从 https://xxxxx.pythonanywhere.com/sw.js
访问,那么您需要设置一个带有“ /sw.js
的 URL”,并将“目录”设置为文件的完整路径,例如 /home/xxxxx/mysite/static/sw.js
。
查看 the PythonAnywhere documentation for static files 了解更多详情。
我是 Flask 的新手,正在构建我的第一个网络应用程序。当从本地主机 运行 时,我的服务工作者注册正常,但是当我将应用程序部署到 pythonanywhere 时。要构建它,请遵循 www.flaskpwa.com 上的过程。这是我得到的:
我的 sw.js 文件位于静态文件夹中。
我有一个服务 service worker js 文件的路由:
@app.route('/sw.js') 定义开关(): return app.send_static_file('sw.js')
在我的 PythonAnywhere“Web”页面上,我有一个名为 /static/ 的静态文件路径指向静态文件夹。
我的 app.js 文件正在使用以下方式注册服务工作者:
navigator.serviceWorker.register('./sw.js')
加载我的网络应用程序时,我的控制台 return 出现以下两个错误:
获取脚本时收到错误的 HTTP 响应代码 (404)。
无法注册服务工作者。 TypeError:无法使用脚本 ('https://xxxxx.pythonanywhere.com/sw.js') 为范围 ('https://xxxxx.pythonanywhere.com/') 注册 ServiceWorker:获取脚本时收到错误的 HTTP 响应代码 (404)。
我很确定我的问题出在 Flask 路由上,因为我在尝试从浏览器指向 xxxxx.pythonanywhere.com/sw.js 时遇到相同的 404 错误。我一直在努力纠正这一点。
感谢您的意见。
如果您在尝试从浏览器访问 https://xxxxx.pythonanywhere.com/sw.js
时遇到 404 错误,那么这不是您的 Flask 路由——这是您的静态路由。如果您有一个静态文件映射,其中“URL”设置为 /static
,那么它只会接收以 https://xxxxx.pythonanywhere.com/static
.
如果您想专门为文件 sw.js
设置一个静态路由,并且您希望它可以从 https://xxxxx.pythonanywhere.com/sw.js
访问,那么您需要设置一个带有“ /sw.js
的 URL”,并将“目录”设置为文件的完整路径,例如 /home/xxxxx/mysite/static/sw.js
。
查看 the PythonAnywhere documentation for static files 了解更多详情。