首页 > 解决方案 > 当 Django DEBUG = False 时托管媒体文件

问题描述

为了Media files在我的网络服务器中服务,我遇到了一个小问题。我的 web 应用程序处于生产模式,所以我必须设置DEBUG = false.

这是我的项目:

Astrophotographie
|
|_ Accueil
|_ Articles
|_ Astrophotographie
|_ Astro_Database
|_ manage.py
|_ Media
|     |_ Media
|          |_ list of pictures
|_ static
|_ templates
|_ virtualenv

我的 settings.py 文件:

STATIC_URL = '/static/'
THEME_DIRS = os.path.join(BASE_DIR, "static")
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"), THEME_DIRS, ]

MEDIA_URL = "/Media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "Media")

好吧,它已经完成了,我知道 Django 不能像这样托管媒体文件,所以我必须Apache2这样做。我配置了 Apache2,所以我所有的网站听起来都像,但我没有克服显示图片。

Apache2 配置:

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerAdmin webmaster@localhost

    Alias /Media/  /home/pi/astro/Astrophotographie/Media
    Alias /static/ /home/pi/astro/Astrophotographie/staticfiles

    <Directory /home/pi/astro/Astrophotographie/static>
        Require all granted
    </Directory>

    <Directory /home/pi/astro/Astrophotographie/Media>
        Require all granted
    </Directory>

    <Directory /home/pi/astro/Astrophotographie/Astrophotographie>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess astro/Astrophotographie python-path=/home/pi/astro/Astrophotographie python-home=/home/pi/astro/astroenv
    WSGIProcessGroup astro/Astrophotographie
    WSGIScriptAlias / /home/pi/astro/Astrophotographie/Astrophotographie/wsgi.py

</VirtualHost>

别名似乎不错吧?为了正确显示图片,我错过了配置中的某些内容?

这是我在我的网站上得到的:

在此处输入图像描述

标签: djangodjango-templatesapache2

解决方案


我找到了答案,我不得不像这样修改我的 apache2 文件:

Alias /Media/  /home/pi/astro/Astrophotographie/Media/

我忘了/在我的行尾。现在,有了DEBUG = False,它工作正常


推荐阅读