随记:pywebio+django报错“Failed to load resource”,cdn失效
自己用Django + pywebio 搭建的网站一直正常运转,但近期出现了报错“Failed to load resource”,链接显示:“http://127.0.0.1:8000/?_pywebio_cdn=False”,经查阅官网资料,应该是cdn突然失效导致的。
【解决方案】
官网“高级特性”有如下描述:
PyWebIO静态资源的托管
PyWebIO默认使用CDN来获取前端的静态资源,如果要将PyWebIO应用部署到离线环境中,需要自行托管静态文件, 并将
webio_view()或webio_handler()的cdn参数设置为False。
cdn=False时需要将静态资源托管在和PyWebIO应用同级的目录下。 同时,也可以通过cdn参数直接设置PyWebIO静态资源的URL目录。PyWebIO的静态文件的路径保存在
pywebio.STATIC_PATH中,可使用命令python3 -c "import pywebio; print(pywebio.STATIC_PATH)"将其打印出来。注解
使用
start_server()启动的应用,如果将cdn参数设置为False,会自动启动一个本地的静态资源托管服务,无需手动托管。
1、根据官网步骤操作后,发现静态文件的目录“html”保存在django工程根目录下,app目录里的“urls.py”改为webio_view(views.Index,cdn=False)依然报错。所以改用“通过 cdn 参数直接设置PyWebIO静态资源的URL目录”的方式操作。
2、查看django工程同名目录下的“settings.py”,里面找到语句“ STATIC_URL = '/static/' ”,并保证“INSTALLED_APPS”下'django.contrib.staticfiles'没有被注释掉。
3、在django工程里你自建的app目录下,新建"static"目录,将通过“print(pywebio.STATIC_PATH)”找到的“html”文件夹复制到"static"目录下。
4、自建app目录里的“urls.py”改为webio_view(views.Index,cdn='/static/html'),执行成功。
自此,问题解决!
小知识:html文件夹名可以改为任意名称,只要把webio_view函数里的cdn参数一并改了就行。

浙公网安备 33010602011771号