這是setting.py
Django的識別靜態地址而不是媒體
STATIC_URL = '/static/'
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
在我的項目文件夾結構,我的靜態和媒體設置,static
和media
文件夾是彼此相鄰。
所以,當我使用這個HTML標記
<img src="/static/pic.jpg">
或者http://127.0.0.1:8000/static/pic.jpg
,它的工作原理。
但<img src="/media/pic.jpg">
和http://127.0.0.1:8000/media/pic.jpg
沒有。
Django如何將127.0.0.1:8000/static/
識別爲有效地址 但是當我嘗試127.0.0.1:8000/media/
時拋出了Page not found (404)
?
這是我的網址配置
from django.conf.urls import patterns, include, url
from django.contrib import admin
from mysite.views import *
urlpatterns = patterns('',
url(r'^$', 'mysite.views.home', name='home'),
url(r'^home/', 'mysite.views.gohome'),
url(r'^admin/', include(admin.site.urls)),
)
謝謝。它使用DEBUG = True來完成這項工作。但如何使它在服務器上工作? –
@AlexJolig取決於您將在生產環境中使用的應用程序服務器(gunicorn/apache),還是服務器將靜態/媒體文件作爲nginx提供。 – levi
我在本地和服務器上使用nginx –