2010-10-14 101 views
1

Readed所有这些话题https://stackoverflow.com/search?q=django.views.static.serve 它没有帮助:(Django的:如何添加静态文件

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

媒体在
d :\错误追踪系统\静态

随着文件:
docicons-note.gif
的style.css

settings.py我设置:
MEDIA_ROOT = 'd:/错误追踪/静态/'
MEDIA_URL = '/静态/'

urls.py我设置:

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

模板:(在<标签读取它没有空格>)
< !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>

回答

0

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

+0

它是测试服务器 – aTei 2010-10-14 08:02:17

5

urls.py:

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

settings.py MEDIA_ROOT = '路径/到/媒体/文件夹/'

所以,如果你有/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服务器。

+0

就像你说的那样,但服务器说:“/test_media/style.css HTTP 1.1”404 1744. Tryed:MEDIA_ROOT ='D:/ bugtracker/media_root /'and MEDIA_ROOT ='D:\\ bugtracker \\ media_root \\' – aTei 2010-10-14 15:45:17

+0

您是否拥有相同的404代码(docicons-note.gif)? css文件位于media_root文件夹或media_root/css中?你说媒体文件在D:\ bugtracker \ static中。然后MEDIA_ROOT应该是MEDIA_ROOT ='D:/ bugtracker/static' – Seitaridis 2010-10-15 05:37:07

+0

该URLs方法不适用于生产使用,如下所述:https://docs.djangoproject.com/en/dev/howto/static-files/#serving-静态文件,开发过程 – User 2014-06-28 23:57:29

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'}), 
) 

希望这对您更好。