python - python – 我在 cpanel 上的 django 网站不会加载我的媒体文件,但当 DEBUG=True 时,我所有的 stacticfiles 和媒体都可以工作
问题描述
当 debug=False 时我需要一些帮助来显示我的媒体文件
我有一个运行良好的 Django 项目,并在 debug = True 时显示从管理员下载的所有媒体文件,但我立即更改 debug = False Django 找不到我的媒体文件夹,但它加载了我的静态文件夹。如您所见,我已经正确配置了我的 MEDIA_ROOT 和 MEDIA_URL。
这是我的设置.py
设置.py
import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = '#############################'
DEBUG = False
ALLOWED_HOSTS = ['##############################']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'appsolve.apps.AppsolveConfig',
'ACCOUNTS',
'afiilitePrograme',
'manageapps',
'News',
'contactUS',
]
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
#'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',**strong text**
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'alpha1.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['alpha1/templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'alpha1.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
STATIC_ROOT='collected/static'
MEDIA_ROOT = 'collected/media'
STATICFILES_DIRS=[
os.path.join(BASE_DIR,'whereSTATIC/')
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
AUTH_USER_MODEL = 'ACCOUNTS.CustomUser'
这是我的 urls.py
> urls.py
from django.contrib import admin
from appsolve import views
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
import ACCOUNTS
from appsolve.views import apps
from appsolve.views import pracing
from appsolve.views import youraccount
from News.views import Newsarticls
from News.views import newsDetails
from News.views import Deals
from News.views import dealsDetails
from contactUS.views import contactUS
from contactUS.views import requestAPP
from contactUS.views import aboutUS
from contactUS.views import TermsofUse
urlpatterns = [
path('myapps/',views.myappsss,name="myouwapps"),
path('APPS/<int:openthefreepr>',views.openthefree,name="openthefree"),
path('APPS/Paid/<int:prodID>',views.OpenNOW,name="OpenNOW"),
path('pracing/',pracing,name='pricing'),
path('youraccount/',youraccount,name='youraccount'),
path('apps/<int:prodID>',views.productDEtails,name='productDEtails' ),
path('admin/', admin.site.urls),
path('',apps,name="home"),
path('<int:prodID>/getOwned/',views.getOwned,name="getOwned"),
path('<int:prodID>/getsubcibed/',views.getsubcibed,name="getsubcibed"),
path('News/',Newsarticls,name="News"),
path('News/<str:title>',newsDetails,name="newsDetails"),
path('Deals/',Deals,name="Deals"),
path('contactUS/',contactUS,name="contactUS"),
path('requestAPP/',requestAPP,name="requestAPP"),
path('aboutUS/',aboutUS,name="aboutUS"),
path('TermsofUse/',TermsofUse,name="TermsofUse"),
path('accounts/',include('ACCOUNTS.urls'),name="Accounts"),
path('affiliate/',include('afiilitePrograme.urls'),name="afiilitePrograme"),
path('manageapps/',include('manageapps.urls'),name="manageapps"),
]+ static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
我做了很多例子,但没有想到当切换到调试错误模式时所有媒体都没有加载
这是pypassenger_wsgi.py
乘客wsgi.py
from alpha1.wsgi import application
import os
import sys
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'alpha1.settings'
import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application
SCRIPT_NAME = os.getcwd()
class PassengerPathInfoFix(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
from urllib.parse import unquote
environ['SCRIPT_NAME'] = SCRIPT_NAME
request_uri = unquote(environ['REQUEST_URI'])
script_name = unquote(environ.get('SCRIPT_NAME', ''))
offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
return self.app(environ, start_response)
application = get_wsgi_application()
application = PassengerPathInfoFix(application)
有我的passenger_wsgi.py 我不知道如何修复它我有一个cpanel 共享主机
解决方案
推荐阅读
- python - 尝试在 selenium python 中查找元素时出错
- xml - Postgresql 查询以在 bytea 字段中选择条目键
- java - 如何停止将项目添加到 Object ArrayList
- c# - 自动生成发票编号
- mysql - 如何编辑 Mysql innodb_autoinc_lock_mode 值
- javascript - .如何从windows手动卸载旧版本的npm for create-react app
- java - 使用 org.threeten.bp.format.DateTimeFormatter 解析多个模式
- php - 在 Flexslider 2 中使用高级自定义字段需要帮助
- git - jenkins:临时 git checkout other branch 导致触发提交的哈希不正确
- javascript - (Angular/Typescript) 不能使用变量来访问 JSON 对象