首页 > 解决方案 > django 配置 apache 来提供媒体和静态文件

问题描述

所以我在 Windows 上安装了 apache 和 mod-wsgi。现在我需要配置 apache 来提供 django 的媒体文件。 网址.py

from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('api/', include('api_backend.urls'))
]
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

apache conf/httpd.conf

LoadModule wsgi_module "c:/users/iyapp/pycharmprojects/cloud_server/venv/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd"
...
# custom httpd configuration

WSGIPythonPath "c:/users/iyapp/pycharmprojects/cloud_server"
WSGIPythonHome "c:/users/iyapp/pycharmprojects/cloud_server/venv"

<VirtualHost *:80>
    ServerName localhost
    WSGIScriptAlias / "c:/users/iyapp/pycharmprojects/cloud_server/rebox_django/wsgi.py"


    Alias /media/ "c:/users/iyapp/pycharmprojects/cloud_server/media/"
    Alias /static/ "c:/users/iyapp/pycharmprojects/cloud_server/static/"

    <Directory "c:/users/iyapp/pycharmprojects/cloud_server/static">
    Require all granted
    </Directory>

    <Directory "c:/users/iyapp/pycharmprojects/cloud_server/media">
    Require all granted
    </Directory>

    <Directory "c:/users/iyapp/pycharmprojects/cloud_server/rebox_django">
    <Files wsgi.py>
    Require all granted
    </Files>
    </Directory>

</VirtualHost>

这就是我到目前为止所拥有的。但是,当我尝试访问服务器拥有的媒体文件时,我收到 404 not found 错误。这是为什么?有人可以帮帮我吗?

我正在使用 Apache24(32 位 python)和 mod-wsgi python 模块。 设置.py

ALLOWED_HOSTS = ["*"]

ROOT_URLCONF = 'rebox_django.urls'
WSGI_APPLICATION = 'rebox_django.wsgi.application'
STATIC_URL = '/static/'
STATICFILES_DIRS = []
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
STATIC_ROOT = os.path.join(BASE_DIR, "static/")

标签: pythondjangoapache

解决方案


推荐阅读