django - 偶尔出现错误的网址

标签 django web-applications

我们有一个基于 python/django 构建的应用程序。每当链接缺失 (404) 或服务器错误 (500) 时我都会收到电子邮件。我注意到我收到了一些看起来像这样的链接:

Referrer: http://www.mywebsite.com/model/
Requested URL: /model/js/modernizr-1.7.min.cb14102011.js
User agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB7.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
IP address: 41.2.246.84

问题是请求的 URL。它请求相对于当前目录的js文件,而不是绝对目录。奇怪的是我无法重现它,而且这种情况每天都会发生几次,即使该网站上有很多不同的用户。缺少链接的结果有时还会导致 500 个错误,具体取决于 url(由于我为应用程序定义的 django url 结构)。

以前有人遇到过这种问题吗?我应该检查哪些内容可以解决此问题?

编辑: js文件通过http://www.mywebsite.com/static/js/访问相同的配置适用于 css 文件。经过进一步调查,似乎“静态”部分已从 url 中删除。

编辑 (2) 我昨天犯了一个错误。 {{ STATIC_URL }} 不仅不会按照设置文件中的定义进行提取,而且会被替换为当前(相对)url。即,在原来的帖子中“模型”应该是“静态”,但它没有被替换。我仍然不明白为什么会发生这种情况。

最佳答案

谢谢丹尼斯和乔丹。您的评论对我帮助很大。

对于我的场景,我注意到问题仅发生在 1 个网址上。由于许多模板使用相同的基本模板。我排除了基本模板问题。我还检查了 url 的 View ,以查看上下文是否已正确添加(因为没有上下文,STATIC_URL 变量可能无法通过)。一切都好。

我在日志中也只看到了IE7。当我查看模板时,我注意到一个额外的结束符“(即class =“bogus””)。我认为额外的引用弄乱了模板,然后 IE7 就无法渲染模板的其余部分。

我已经在生产中进行了更改,因此我不能 100% 确定我已经解决了问题,但我会在一天左右的时间内知道。

编辑: 我意识到,答案在于,如果存在编码问题(即服务器抛出 500),则上下文无法正确加载,因此 STATIC_URL 不会被填充。这也意味着对于从 STATIC_URL 加载的任何文件,每个 500 错误都会有一个相应的 404 错误

关于django - 偶尔出现错误的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7798438/

相关文章:

django - 在 Django 中放置常见查询的位置?

python - Django 模板 - 是否有内置方法可以将当前日期作为 'date' 类型而不是 'str' 类型获取?

python - Docker 安装 pip 要求时速度太慢

Django - 实时通知系统

web-services - Web应用开发平台推荐

javascript滚动到div类的底部

python - 如何开发一个django->pylons文件上传工具?

javascript - iPhone Web 应用程序 : Window. 位置似乎不起作用

docker - Jib - 将图像中的 webapp 文件夹复制到哪里?

database - 寻找基于网络的日志收集/显示应用程序