零星错误的网址

时间:2011-10-17 19:18:12

标签: 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

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

以前有人见过这种问题吗?有什么我应该检查可以解决这个问题吗?

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

编辑(2) 我昨天弄错了。 {{STATIC_URL}}不仅不会在设置文件中定义,而是替换为当前(相对)网址。即,在原始帖子中“模型”应该是“静态的”,但它不会被替换为“静态”。我仍然不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

感谢丹尼斯和乔丹。你的评论给了我很多帮助。

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

我也只在日志中看到了IE7。当我看到模板时,我发现了一个额外的关闭“(即class =”bogus“”)。我认为额外的引用搞砸了模板,然后IE7无法渲染模板的其余部分。

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

修改 我已经意识到,答案在于,如果存在编码问题(即服务器抛出500),则上下文无法正确加载,因此STATIC_URL不会被填充。这也意味着对于从STATIC_URL

加载的任何文件,每500个错误都会产生相应的404错误