2011-03-06 156 views
1

我有我的urls.py行:Django的静态文件

if settings.DEBUG==True: 
    urlpatterns += patterns('', 
     (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT}) 
    ) 

在我的设置文件是这样的:

STATIC_DOC_ROOT = os.path.join(os.path.dirname(__file__),'static').replace('\\','/') 

当我去/在我的网页一切工作好了。当我点击从/到另一个页面的链接时,由于404错误,我没有应用CSS。他试图从该URL加载CSS文件。

http://localhost:8000/show/sth/static/style.css 

这里是我的这种方法

(r'^show/(?P<subject>[^/]+)/(?P<title>[^/]+)$','show'), 

我的网址/链接和CSS的工作只是在这一个模板,这是行不通的urls.py。看来这些参数搞乱了一些东西。任何建议为什么这会失败? 这里是我的模板代码:

{% extends "szkielet.html" %} 
{% block tresc %} 
    <div id="content"> 
     <div class="post"> 
      <h2 class="title">{{ notatka.tytul }}</h2> 
       <p class="meta"><span class="author">{{ notatka.user.name }}</span> <span class="date">July 07, 2010</span>&nbsp;<span class="links"><a href="#" title="">Comments</a></span></p> 
       <div class="entry"> 
        <p>{{ notatka.tresc }}</p> 
      </div> 
     </div> 
    </div> 
{% endblock %} 

Szkielet.html - 这是我的基地

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta name="keywords" content="" /> 
<meta name="description" content="" /> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<title>Perfect Blemish  by Free CSS Templates</title> 
<link href="{{ MEDIA_URL }}style.css" rel="stylesheet" type="text/css" media="screen" /> 
</head> 
<body> 

这里是负责CSS部分它只有一个样式表。

+0

我想你有一个基本的HTML来扩展所有的模板。你忘了在这个页面上扩展吗? – 2011-03-06 15:37:34

+0

我有扩展部分。问题在于,在一个模板中,由于路径不正确,路径不正确,因此css无法正常工作。 – John 2011-03-06 16:46:42

回答

1

可能会将URL设置为覆盖静态url路径,但这里不是这种情况!所以你的URL conf与这个没有任何关系。

核心问题是您的模板渲染的URL不正确:http://localhost:8000/show/sth/static/style.css应该是http://localhost:8000/static/style.css是否正确?

向我们展示您的模板,因为这似乎是问题所在。听起来像你刚刚有一个相对的URL设置为您的CSS而不是绝对或/static/style.css

什么是你的{{ media_url }}?它应该是绝对的,并开始于/

+0

您正确地使用了100%的网址,这正是它的行为方式以及它的行为方式。我在第一篇文章中添加了代码 – John 2011-03-06 17:06:19

+0

您必须发布带有CSS文件链接 – 2011-03-06 17:13:03

+0

的模板,因此请确保您的media_url不是相对网址。请确保它以'/'开头,或包含媒体的完整路径'http:// localhost:8000/static /' – 2011-03-06 17:24:10