Django 我是否总是必须运行collectstatic才能为apache上传的图像提供服务?
我有一个网站,用户可以上传图片。它在django自己的服务器上运行良好。但我使用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
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
的问题。但现在还有另一个问题。请检查一下这个。再次感谢。