自己用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'),执行成功。
自此,问题解决!
标签:load,pywebio,静态,cdn,django,报错,PyWebIO,目录,随记 From: https://www.cnblogs.com/fantamol/p/16895053.html小知识:html文件夹名可以改为任意名称,只要把webio_view函数里的cdn参数一并改了就行。