Django 我是否总是必须运行collectstatic才能为apache上传的图像提供服务?

Django 我是否总是必须运行collectstatic才能为apache上传的图像提供服务?,django,apache,django-staticfiles,Django,Apache,Django Staticfiles,我有一个网站,用户可以上传图片。它在django自己的服务器上运行良好。但我使用apache为我的应用程序和静态提供服务。当我上传任何图片时,我都看不到图片。只有当我运行collectstatic时,我才能看到它们。我是否总是必须运行collectstatic?有没有更好的办法 My settings.py代码段: MEDIA_ROOT = 'C:/Users/Robin/web/leo/static' STATIC_ROOT = 'C:/Users/Robin/static/' STATI

我有一个网站,用户可以上传图片。它在django自己的服务器上运行良好。但我使用apache为我的应用程序和静态提供服务。当我上传任何图片时,我都看不到图片。只有当我运行
collectstatic
时,我才能看到它们。我是否总是必须运行
collectstatic
?有没有更好的办法

My settings.py代码段:

MEDIA_ROOT = 'C:/Users/Robin/web/leo/static'

STATIC_ROOT = 'C:/Users/Robin/static/'

STATICFILES_DIRS = (
    "C:/Users/Robin/web/leo/static",
Apache http.cont代码段:

AliasMatch ^/([^/]*\.css) C:/Users/Robin/static/styles/$1

Alias /static/ C:/Users/Robin/static/

<Directory C:/Users/Robin/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / C:/Users/Robin/web/leo/leo/wsgi.py

<Directory C:/Users/Robin/web/leo/leo>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
AliasMatch^/([^/]*\.css)C:/Users/Robin/static/styles/$1
别名/static/C:/Users/Robin/static/
命令拒绝,允许
通融
WSGIScriptAlias/C:/Users/Robin/web/leo/leo/wsgi.py
命令允许,拒绝
通融

您应该将媒体文件与静态文件分开。介质用于用户上传的文件,静态介质用于开发人员提供的文件(通常是样式和脚本)
MEDIA\u ROOT
STATIC\u ROOT
应指向不同的目录。您可以运行
collectstatic
将源代码和各种应用程序(也是第三方应用程序)中的所有静态文件复制到
static\u ROOT
,以便Apache可以为它们提供服务。您不需要运行
collectstatic
和任何特殊的程序来为您的媒体文件提供服务

配置示例:

Alias /static/ C:/Users/Robin/static/
Alias /media/ C:/Users/Robin/media/

<Directory C:/Users/Robin/static>
    Order deny,allow
    Allow from all
</Directory>

<Directory C:/Users/Robin/media>
    Order deny,allow
    Allow from all
</Directory>
Alias/static/C:/Users/Robin/static/
别名/media/C:/Users/Robin/media/
命令拒绝,允许
通融
命令拒绝,允许
通融

谢谢,我已经按照您所说的进行了配置,这确实解决了
collectstatic
的问题。但现在还有另一个问题。请检查一下这个。再次感谢。