代码之家  ›  专栏  ›  技术社区  ›  tipu

尝试在Django中加载CSS/图像

  •  0
  • tipu  · 技术社区  · 15 年前

    我看 http://docs.djangoproject.com/en/dev/howto/static-files/ 已经加载了,但在如何加载css/image文件方面仍然很困惑。

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

    我的ur.p.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 回复  |  直到 15 年前
        1
  •  3
  •   Daniel Roseman    15 年前

    你已经关闭了第10行的urlpatterns,所以你的站点的媒体声明只是坐在那里,没有附加到任何东西上。去掉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'})
    )
    
        2
  •  2
  •   miku    15 年前

    只使用 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'}),
    )   
    
        3
  •  0
  •   baloo    15 年前

    您应该将规则直接写入Web服务器配置以匹配媒体URL。 或者对静态文件使用不同的vhost。

    不在Django配置中

    推荐文章