2010-10-14 107 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'}), 
) 

希望這對您更好。