Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django DEBUG=False时托管媒体文件_Django_Django Templates_Apache2 - Fatal编程技术网

Django DEBUG=False时托管媒体文件

Django DEBUG=False时托管媒体文件,django,django-templates,apache2,Django,Django Templates,Apache2,为了在我的Web服务器中提供媒体文件,我遇到了一个小问题。 我的web应用程序处于生产模式,因此我必须设置DEBUG=false 这是我的项目: Astrophotographie | |_ Accueil |_ Articles |_ Astrophotographie |_ Astro_Database |_ manage.py |_ Media | |_ Media | |_ list of pictures |_ static |_ templates |_ v

为了在我的Web服务器中提供
媒体文件
,我遇到了一个小问题。 我的web应用程序处于生产模式,因此我必须设置
DEBUG=false

这是我的项目:

Astrophotographie
|
|_ Accueil
|_ Articles
|_ Astrophotographie
|_ Astro_Database
|_ manage.py
|_ Media
|     |_ Media
|          |_ list of pictures
|_ static
|_ templates
|_ virtualenv
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")
<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>
My settings.py文件:

Astrophotographie
|
|_ Accueil
|_ Articles
|_ Astrophotographie
|_ Astro_Database
|_ manage.py
|_ Media
|     |_ Media
|          |_ list of pictures
|_ static
|_ templates
|_ virtualenv
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")
<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>
好了,已经完成了,我知道Django不能像这样托管媒体文件,所以我有
Apache2
来做到这一点。我配置了Apache2,所以我所有的网站听起来都像,但我无法显示图片

Apache2配置:

Astrophotographie
|
|_ Accueil
|_ Articles
|_ Astrophotographie
|_ Astro_Database
|_ manage.py
|_ Media
|     |_ Media
|          |_ list of pictures
|_ static
|_ templates
|_ virtualenv
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")
<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>

DocumentRoot/var/www/html
服务器管理员webmaster@localhost
Alias/Media//home/pi/astro/Astrophotography/Media
Alias/static//home/pi/astro/astrophotography/staticfiles
要求所有授权
要求所有授权
要求所有授权
WSGIDaemonProcess astro/astrophotography python path=/home/pi/astro/astrophotography python home=/home/pi/astro/astroenv
WSGIProcessGroup天文/天体摄影
WSGIScriptAlias//home/pi/astro/astrophotography/astrophotography/wsgi.py
Alias看起来不错吧? 为了正确显示图片,我的配置中遗漏了一些内容

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


我找到了答案,我不得不修改我的apache2文件如下:

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

我忘了我这行末尾的
/
。现在,使用
DEBUG=False
,它工作正常

请不要发布文本图片。Django和Apache设置都不可读;将它们作为实际文本复制并粘贴到此处。我正在使用SSH,因此我必须编写所有内容或进行屏幕截图:/I我将尝试使其更好;)