django文件服务问题

时间:2010-05-30 19:49:07

标签: python django serving

我有我的网址模式,

urlpatterns += patterns('',
     (r'^(?P<path>.*)$', 'django.views.static.serve',
     {'document_root': '/home/tipu/Dropbox/dev/workspace/search/images'})

在我的模板中

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}style.css" />

它服务css就好了。但是文件logo.png,与style.css在同一个目录中,在我这样做时没有显示:

<img src = "{{ MEDIA_URL }}logo.png" id = "logo" />

知道为什么吗?

编辑:

此处它们位于同一目录中:http://i.imgur.com/Wlssb.png

root@tipu_ubuntu:/home/tipu/Dropbox/dev/workspace/search# curl -I http://localhost:8080/logo.png
HTTP/1.1 404 Not Found
Date: Sun, 30 May 2010 19:56:54 GMT
Server: Apache/2.2.14 (Ubuntu)
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=iso-8859-1

root@tipu_ubuntu:/home/tipu/Dropbox/dev/workspace/search# curl -I http://localhost:8080/style.css
HTTP/1.1 200 OK
Date: Sun, 30 May 2010 19:57:06 GMT
Server: Apache/2.2.14 (Ubuntu)
Last-Modified: Thu, 27 May 2010 03:28:14 GMT
Content-Length: 1447
Content-Type: text/css
Vary: Accept-Encoding
Connection: close

3 个答案:

答案 0 :(得分:0)

很奇怪。运行curl -I http://localhost:8000/logo.png时会返回什么错误代码?

就在我的脑海中,可能出现的问题可能是:

  • 错字(在文件名或模板中)
  • 权限
  • 错误的数据(它真的是PNG吗?它以某种方式被清空了吗?)

此外,你所到达的urlpatterns似乎将媒体置于/。我认为这就是你想要的?

答案 1 :(得分:0)

我没有解决手头的问题,但是,我能够通过apache本身最终提供文件。我使用了此处找到的解决方案:http://oebfare.com/blog/2007/dec/31/django-and-static-files/

答案 2 :(得分:0)

那个Django网址看起来不错。

两个curl请求正在击中Apache(服务器:Apache / 2.2.14(Ubuntu)),而不是Django,所以你的urlpatterns可能与你看到的错误没有任何关系。你确定Apache正在查看该目录而不是另一个目录吗?尝试将图像换成另一个图像并查看它是否发生变化 - 如果没有,您将知道您的目录路径混乱。