试图在django中加载css / images

时间:2010-05-25 15:12:59

标签: django url

我已经看了http://docs.djangoproject.com/en/dev/howto/static-files/,但我仍然对如何加载css /图像文件感到困惑。

在我的服务器上,images文件夹和css文件位于/ srv / twingle / search

my urls.py

 1 from django.conf.urls.defaults import *
  2 
  3 # Uncomment the next two lines to enable the admin:
  4 # from django.contrib import admin
  5 # admin.autodiscover()
  6 
  7 urlpatterns = patterns('twingle.search.views',
  8    url(r'^$', 'index'),
  9    url(r'^search/(?P<param>\w+)$', 'index'),
 10 
 11 (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
 12         {'document_root': '/srv/twingle/search'}),
 13 
 14 )

我尝试按如下方式访问我的css,

<link rel="stylesheet" type="text/css" href="/site_media/style.css" />

这正是教程所说的,但它不起作用。有什么建议吗?

3 个答案:

答案 0 :(得分:3)

你已经关闭了第10行的urlpatterns,所以你的site_media声明只是坐在那里,没有附加到任何东西。摆脱10上的额外近距离。

编辑添加您还使用了前缀参数,该参数也应用于静态视图。这样做:

urlpatterns = patterns('twingle.search.views',
   url(r'^$', 'index'),
   url(r'^search/(?P<param>\w+)$', 'index'),
)

urlpatterns += patterns('',
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': '/srv/twingle/search'})
)

答案 1 :(得分:2)

仅使用django.views.static.serve进行开发或测试。顺便说一句,您对静态文件的规则不会被写为patterns函数的参数。它应该是这样的:

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('twingle.search.views',
   url(r'^$', 'index'),
   url(r'^search/(?P<param>\w+)$', 'index'),

   url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
         {'document_root': '/srv/twingle/search'}),
)   

答案 2 :(得分:0)

您应该将规则直接写入网络服务器配置以匹配媒体网址。 或者使用不同的vhost来存储静态文件。

不在django配置中