【发布时间】:2011-10-17 19:18:12
【问题描述】:
我们有一个基于 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 替换。即,在原始帖子中,“模型”应该是“静态的”,但它不会被替换。我仍然不知道为什么会发生这种情况。
【问题讨论】:
-
我遇到了一个非常恼人的反复出现的问题,几乎相同,它通常会针对页面上的所有 url 使用 404 来轰炸我的所有图形文件。不幸的是,我没有给你解决方案。我改变了我的基本模板,问题似乎已经消失了,我还没有机会深入挖掘并找到罪魁祸首。非常有兴趣亲自听到这个解决方案:D
-
你必须更详细地解释你的问题。请求 URL 应该是什么?你的静态文件服务是如何在 Django 中配置的?
-
可能是发送这些请求的机器人。可以吗?
-
它不是机器人,因为所有这些请求都发生在用户身份验证之后。即使直接调用 url,它也会被重定向到登录屏幕。
-
没有显示 {{ STATIC_URL }} 的两个原因:您没有在
settings.py文件中设置上下文处理器,或者您没有使用 RequestContext 呈现模板。