django - Django 内置服务器无法解码 URL 参数
问题描述
我不确定这是否是特定于 Django 的问题,但现在我在我的项目中看到了它。
因为浏览器倾向于缓存图标并且我已经为我的网站更改了它们,所以我想出了一个技巧来强制之前访问过我网站的任何人接收新图标,添加“?” 后跟一些随机字符到图像文件名,所以目前是这样的:
<link rel="icon" type="image/png" sizes="32x32" href="{% static 'images/favicons/favicon-32x32.png?v=Gv6qnaoWO5' %}">
现在的问题是,网站图标没有加载,当我检查源代码时,我看到了这个:
<link rel="icon" type="image/png" sizes="32x32" href="/static/images/favicons/favicon-32x32.png%3Fv%3DGv6qnaoWO5">
当我点击上面的链接时,我404
从django.views.static.serve
. 如果我删除“?” 和其他角色,一切正常。
如果没记错的话,这是特殊字符的正常编码,Web 服务器应该对其进行解码,但这不会发生在 Django 的内置服务器上。
那么,是否有解决此问题的方法,或者我应该等到将站点移至生产环境?
解决方案
static
获取文件名,并构建 URL。文件名没有查询参数。事后向其添加查询参数:
href="{% static 'images/favicons/favicon-32x32.png' %}?v=Gv6qnaoWO5">
推荐阅读
- django - Django ORM Count 组和子组
- haskell - Haskell 拆分列表
- android - 当媒体播放器在服务类中停止时应用程序停止工作
- android - android:回收器视图适配器
- python - %d 在这一行做了什么?
- mongodb - 这是过滤词袋语料库的最佳 mongodb 模式吗?
- python - 使用 django-mama-cas 和 django-cas-ng 对用户进行身份验证时是否可以应用组成员身份?
- html - json 转换为 html 表(反应)
- python - 如何在 Python 中获取 geckdriver 的绝对路径
- python - 在 tkinter Gui 界面中打印天气更新