Django:如何添加静态文件

时间:2010-10-14 07:56:11

标签: django file static

了解所有这些主题https://stackoverflow.com/search?q=django.views.static.serve 它没有帮助:(

操作系统:Windows XP Python:2.7 Django:1.2.3

媒体
d:\错误追踪\静态

使用文件:
 docicons-note.gif
 的style.css

settings.py 中设置:
MEDIA_ROOT ='D:/ bugtracker / static /'
MEDIA_URL ='/ static /'

urls.py 中设置:

urlpatterns = patterns('',
    (r'^media/(?P.*)$', 'django.views.static.serve',{'document_root':'settings.MEDIA_ROOT'}),
)

模板:(在< tag>中无空格地阅读)
< !DOCTYPE html> < html lang='ru'>
< head>
< link rel="stylesheet" type="text/css" href="media/style.css" />
< /head>
< body>
< img src="{{MEDIA_URL}}/docicons-note.gif"/>
< /body>
< /html>

3 个答案:

答案 0 :(得分:5)

<强> urls.py:

urlpatterns = patterns('',
    (r'^test_media/(?P<path>.*)$', 'django.views.static.serve',   
        {'document_root':'settings.MEDIA_ROOT'}),
)

<强> settings.py     MEDIA_ROOT ='path / to / media / folder /'

所以如果你有/test_media/photo.jpg将使用来自MEDIA_ROOT的值: 'path / to / media / folder / photo.jpg'

模板文件:

< !DOCTYPE html> < html lang='ru'>
< head>
< link rel="stylesheet" type="text/css" href="/test_media/style.css" />
< /head>
< body>
< img src="/test_media/docicons-note.gif"/>
< /body>
< /html> 

这应该仅用于开发目的。对于生产,您应该使用真正的Web服务器。

答案 1 :(得分:2)

您的settings.py包含:

MEDIA_URL = '/static/'

但是在urls.py中,您的静态服务应用指向“媒体”。更改urls.py中的静态服务条目以匹配MEDIA_URL设置:

urlpatterns = patterns('',
    (r'^static/(?P.*)$', 'django.views.static.serve',{'document_root':'settings.MEDIA_ROOT'}),
)

希望这对您更有效。

答案 2 :(得分:0)

静态服务仅在测试服务器运行时通过Django完成。如果您使用的是单独的Web服务器,则需要使用该Web服务器的工具来提供静态文件,例如: Alias指令。