调试中未显示媒体文件=False Django 2.2.6

调试中未显示媒体文件=False Django 2.2.6,django,cpanel,Django,Cpanel,在调试模式下,每件事都能完美工作,但在调试id为false时,无法在生产环境中显示媒体文件 这是我的设置 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [TEMPLATES_DIR,], 'APP_DIRS': True, 'OPTIONS': { 'context_proce

在调试模式下,每件事都能完美工作,但在调试id为false时,无法在生产环境中显示媒体文件

这是我的设置

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [TEMPLATES_DIR,],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.request',
                'django.template.context_processors.debug',
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.csrf',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.static',
                'django.template.context_processors.media',
            ],
        },
    },
]

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.request",
    "django.core.context_processors.debug",
    "django.core.context_processors.auth",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
)

STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = [STATIC_DIR,]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticroot')

# Media folder for database media
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
和项目URL

if settings.DEBUG:
    urlpatterns += static(
                        settings.STATIC_URL,
                        serve,
                        document_root=settings.STATIC_ROOT
                        )
    urlpatterns += static(
                        settings.MEDIA_URL,
                        serve,
                        document_root=settings.MEDIA_ROOT
                        )
尽管url链接路径使用模板标记显示得非常完美

{% load staticfiles %}
<a href="{{ magazine.document.url }}" target="_blank">
      <i class='far fa-file-pdf'></i>
 </a>
{%load staticfiles%}

希望您能帮助解决此问题。

这是我的错,PDF文件必须由第三方查看器下载或查看。。对于调试模式,当调试为False时,我必须让Apache服务器工作。。。希望这有助于任何人面对同样的问题

这是我的错PDF文件必须由第三方查看器下载或查看。。对于调试模式,当调试为False时,我必须让Apache服务器工作。。。希望这有助于任何人面对同样的问题

您是否安装了web服务器?当DEBUG=False时,静态文件将不会发生url解析。一般来说,在生产环境中,您的nginx(或Apache)服务器将是为您的静态资产提供服务的服务器。@MattSeymour不,我没有设置web服务器。。我只是在我的电脑上收集静态文件,所有静态文件都可以正常工作。。但调试模式为False时不显示媒体文件。。在我使用cpanel平台的托管服务器上也存在同样的问题。cpanel上的日志中有错误吗?这可能是权限问题。@MattSeymour我认为这与cpanel有关,因为。。我现在尝试调试True,它给我的提示是:django.views.static.service。。但是,对于媒体图像,效果很好。。此错误仅适用于PDF文件当调试为真时,您正在通过URL.py中的
if设置提供媒体文件。调试:
。不建议在DEBUG=True时提供静态文件,也不应将其视为解决方案。这个问题在您的cpanel配置中的某个地方(我对它知之甚少)。在cpanel表单上重新表述您的问题可能是值得的,因为这不是django特有的问题,而是配置问题。您是否设置了web服务器?当DEBUG=False时,静态文件将不会发生url解析。一般来说,在生产环境中,您的nginx(或Apache)服务器将是为您的静态资产提供服务的服务器。@MattSeymour不,我没有设置web服务器。。我只是在我的电脑上收集静态文件,所有静态文件都可以正常工作。。但调试模式为False时不显示媒体文件。。在我使用cpanel平台的托管服务器上也存在同样的问题。cpanel上的日志中有错误吗?这可能是权限问题。@MattSeymour我认为这与cpanel有关,因为。。我现在尝试调试True,它给我的提示是:django.views.static.service。。但是,对于媒体图像,效果很好。。此错误仅适用于PDF文件当调试为真时,您正在通过URL.py中的
if设置提供媒体文件。调试:
。不建议在DEBUG=True时提供静态文件,也不应将其视为解决方案。这个问题在您的cpanel配置中的某个地方(我对它知之甚少)。在cpanel表单上重新表述您的问题可能是值得的,因为它不是django特有的问题,而是配置问题。