我在 cpanel 上的 django 网站没有加载我的媒体文件(从管理员上传的图像)但是当 DEBUG=False 时我的所有 stacticfiles(css 等)都可以工作
Posted
技术标签:
【中文标题】我在 cpanel 上的 django 网站没有加载我的媒体文件(从管理员上传的图像)但是当 DEBUG=False 时我的所有 stacticfiles(css 等)都可以工作【英文标题】:My django's website on cpanel doesn't load my media files( images upload from admin ) but all my stacticfiles (css,etc)work when DEBUG= False 【发布时间】:2021-06-04 06:00:09 【问题描述】:我有一个运行良好的 django 项目,当 debug = True 时显示从管理员上传的所有媒体文件,但我立即将更改为 debug = False django 找不到我的媒体文件夹,但它加载了我的静态文件夹。如您所见,我已正确设置了 MEDIA_ROOT 和 MEDIA_URL。
我的设置.py
# Static files (CSS, javascript, Images)
import os
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR,'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
#HTTPS SETTING
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
我的 urls.py:
urlpatterns = [
path('', include('appMain.urls',namespace='main')),
path('auth/', include('appAuth.urls',namespace='auth')),
path('blog/', include('blog.urls',namespace='blog')),
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
所以我需要一些帮助来在 debug=False 时显示我的媒体文件
【问题讨论】:
【参考方案1】:在 settings.py 中做这个
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
if DEBUG:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
else:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
并在 urls.py 中导入
from django.conf.urls import url
from django.conf import settings
from django.views.static import serve
并将其粘贴到您的路径中的 urlspatterns 中
url(r'^media/(?P<path>.*)$', serve,'document_root': settings.MEDIA_ROOT),
url(r'^static/(?P<path>.*)$', serve,'document_root': settings.STATIC_ROOT),
喜欢这个
urlpatterns = [
url(r'^media/(?P<path>.*)$', serve,'document_root': settings.MEDIA_ROOT),
url(r'^static/(?P<path>.*)$', serve,'document_root': settings.STATIC_ROOT),
path('admin/', admin.site.urls),
]
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于我在 cpanel 上的 django 网站没有加载我的媒体文件(从管理员上传的图像)但是当 DEBUG=False 时我的所有 stacticfiles(css 等)都可以工作的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 Fastcomet Django 网站没有加载 css?