2010-10-23 183 views
0

我有几个CSS文件列在我的base.html中,而其中一个被加载,其他一切都没有,也没有JavaScript或图像。Django无法加载所有CSS文件

以下是base.html文件的一部分:与媒体是在包含静态文件的基本目录的文件夹

<html> 
<head> 
    <link href="/media/css/base.css" rel="stylesheet" type="text/css"/>   
    <link href="/media/css/home.css" rel="stylesheet" type="text/css"/> 
    <link href="/media/css/slideshow.css" rel="stylesheet" type="text/css"/> 
    <link href="/media/css/demos.css" rel="stylesheet" type="text/css"/> 
    ... 

。当查看产生的页面源时,base.css加载正常,但对于其他所有内容,我得到Page not found: [Name of CSS file here]。据我所知,base.css和home.css没有任何区别;文件夹的位置,文件的权限...我只是不知道为什么它可以找到一个文件,而不是其余。有没有人有任何想法可能会发生什么?

Settings.py

ROOT_DIR = os.path.abspath("") 
ROOT_URL = 'http://url that will be used for running product/' 


MEDIA_ROOT = ROOT_DIR + 'media/' 
MEDIA_URL = ROOT_URL + 'media/' 

urls.py

urlpatterns += patterns('django.views', 
     url(r'^media/css/(?P<path>.*)$', 'static.serve', 
      {'document_root': ROOT_DIR + 'media/css/'}, name='css-root'), 
     (r'^media/images/(?P<path>.*)$', 'static.serve', 
      {'document_root': ROOT_DIR + 'media/images/'}), 
     (r'^media/scripts/(?P<path>.*)$', 'static.serve', 
      {'document_root': ROOT_DIR + 'media/script/'}), 
) 
+0

当您直接在浏览器中查看这些路径时会发生什么?你得到你期望的文件吗? – 2010-10-23 19:19:53

+0

@Daniel - 正如我所说:我可以看到base.css,但其他一切都是“找不到页面” – 2010-10-23 19:28:04

+1

对不起,没有正确阅读。但是 - 听起来像一个奇怪的问题,我知道 - 你真的确定你得到的base.css实际上是你的网站,而不是管理员的那个? – 2010-10-23 21:02:01

回答

3

好的,所以我们已经到了现在的底部。您的MEDIA_URL设置与ADMIN_MEDIA_PREFIX设置冲突 - 它们都设置为“/ media”,并且管理员优先。例如:

MEDIA_URL设置为别的东西 - 例如 - /site_media - 并且事情应该更开心。

0

你有什么MEDIA_ROOT设置?我很惊讶你必须做的不仅仅是“/css/base.css”等等。

+0

MEDIA_ROOT已设置为媒体。 – 2010-10-23 19:22:02

+0

...以及MEDIA_URL如何? – jMyles 2010-10-23 19:30:34

+0

同样的事情,但是会在生产中使用的URL的前缀。我会用它编辑我的文章。 – 2010-10-23 19:37:07