当 Django DEBUG = False 时托管媒体文件
Hosting Media files when 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>
别名似乎不错吧?
为了正确显示图片,我在配置中遗漏了一些东西?
这是我在我的网站上得到的:
我找到了答案,我不得不像这样修改我的 apache2 文件:
Alias /Media/ /home/pi/astro/Astrophotographie/Media/
我忘记了行尾的 /
。现在,使用 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>
别名似乎不错吧? 为了正确显示图片,我在配置中遗漏了一些东西?
这是我在我的网站上得到的:
我找到了答案,我不得不像这样修改我的 apache2 文件:
Alias /Media/ /home/pi/astro/Astrophotographie/Media/
我忘记了行尾的 /
。现在,使用 DEBUG = False
,它工作正常