【发布时间】:2023-03-12 14:25:01
【问题描述】:
我的 urls.py 中有这个
if settings.DEBUG:
handler404 = 'views.custom_404'
handler500 = 'views.custom_500'
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在 settings.py 中
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static", "media")
STATIC_ROOT = os.path.join(BASE_DIR, "static", "static_root")
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static", "static_files"),
)
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
我在 wsgi.py 中有这个
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ecommerce.settings")
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
在开发中,当 DEBUG 和 TEMPLATE_DEBUG 设置为 True 时,一切都可以正常工作。一旦设置为 FALSE,我只能在站点上看到静态文件。
例如这个静态负载
src="/static/img/placeholder.svg"
但是这个媒体没有
src="/media/foodtruck/logo/banner2.jpg"
文件夹是这样设置的
root\static\media\foodtruck\logo\banner2.jpg
root\static\static_root\img\placeholder.svg
在html中
<img src="{{ MEDIA_URL }}{{ truck.logo }}">
<img src="{{ STATIC_URL }}img/placeholder.svg">
【问题讨论】:
标签: django python-2.7 django-templates static-files