使用Apache为多个Django静态目录提供服务

使用Apache为多个Django静态目录提供服务,django,apache,httpd.conf,Django,Apache,Httpd.conf,有没有办法从Apache提供2个或更多的静态目录?我正在使用Django,它在1个静态路径下运行良好;当我放2时,它忽略了第2个 我不想使用collecstatic。只是尝试设置我的开发环境,我喜欢在每个应用程序中分别保存静态数据。我知道在生产中这会改变 以下是我的Apache httpd.conf代码: #games app Alias /static/ "C:/nerd_project/nerd/games/static/" <Directory "C:/nerd_project/ne

有没有办法从Apache提供2个或更多的静态目录?我正在使用Django,它在1个静态路径下运行良好;当我放2时,它忽略了第2个

我不想使用collecstatic。只是尝试设置我的开发环境,我喜欢在每个应用程序中分别保存静态数据。我知道在生产中这会改变

以下是我的Apache httpd.conf代码:

#games app
Alias /static/ "C:/nerd_project/nerd/games/static/"
<Directory "C:/nerd_project/nerd/games/static">
Require all granted
</Directory>

#ice_cream app
Alias /static/ "C:/nerd_project/nerd/ice_cream/static/"
<Directory "C:/nerd_project/nerd/ice_cream/static">
Require all granted
</Directory>
#游戏应用程序
别名/static/“C:/nerd_项目/nerd/games/static/”
要求所有授权
#冰淇淋应用程序
别名/static/“C:/nerd_项目/nerd/ice_cream/static/”
要求所有授权
游戏应用程序工作;css和图像加载


冰淇淋应用程序未加载且被忽略

您试图将相同的URL路径/static/别名到两个目录。这就是它失败的原因

Django在这方面有很好的记录

检查设置文档以提供来自多个目录的静态文件


如果您试图为多个项目静态服务,您可以考虑虚拟主机。

< P>我想知道使用Apache。 本页提到:

“此外,此帮助程序函数仅服务于实际的静态根文件夹;它不执行类似于django.contrib.staticfiles的静态文件发现。”

+static(settings.static\u URL,document\u root=settings.static\u root)
添加到URL.py中时未加载css和图像。您必须更仔细地阅读,然后进入本页:

我在my urls.py中添加了以下内容,现在它可以工作了:

from django.conf import settings
from django.contrib.staticfiles import views

if settings.DEBUG:
    urlpatterns += [
        url(r'^static/(?P<path>.*)$', views.serve),
    ]
来自django.conf导入设置的

从django.contrib.staticfiles导入视图
如果设置为.DEBUG:
URL模式+=[
url(r'^static/(?P.*)$,views.service),
]
我只是注释掉了Apache的httpd.conf文件中指向2个静态目录的别名和目录。
当然,这仅适用于开发服务器,因为我喜欢在每个应用程序中保留我的静态文件。

直到今天早上,我也遇到了同样的问题,并在本页面上登录,以了解我的静态文件配置失败的原因

您可以使用多个静态位置为多个应用程序提供服务。 看看我如何让两个Flask应用程序和一个Django应用程序运行,并从不同的位置为所有人提供静态文件

服务器名ec2-52-20-211-238.compute-1.amazonaws.com

# logs configuration
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

WSGIDaemonProcess aira  threads=5
WSGIScriptAlias /aira /var/www/aira/aira/aira/aira.wsgi
Alias /aira/static/ /var/www/aira/aira/aira/static/
<Directory /var/www/aira/aira/aira/>
  Order allow,deny
  Allow from all
</Directory>

WSGIDaemonProcess ama threads=5
WSGIScriptAlias /ama /var/www/AMA/ama.wsgi
Alias /ama/static/ /var/www/AMA/static/
<Directory /var/www/AMA>
  Order allow,deny
  Allow from all
</Directory>

WSGIDaemonProcess realestatesurvey threads=5
WSGIScriptAlias /RealEstateSurvey /var/www/RealEstateSurvey/mydata/wsgi.py
Alias /RealEstateSurvey/static/ /var/www/RealEstateSurvey/mydata/static/
<Directory /var/www/RealEstateSurvey/mydata/static>
  Order allow,deny
  Allow from all
</Directory>
#日志配置
ErrorLog${APACHE_LOG_DIR}/error.LOG
CustomLog${APACHE\u LOG\u DIR}/access.LOG组合
WSGIDaemonProcess aira线程=5
WSGIScriptAlias/aira/var/www/aira/aira/aira/aira/aira.wsgi
别名/aira/static//var/www/aira/aira/aira/static/
命令允许,拒绝
通融
WSGIDaemonProcess ama线程=5
WSGIScriptAlias/ama/var/www/ama/ama.wsgi
别名/ama/static//var/www/ama/static/
命令允许,拒绝
通融
WSGIDaemonProcess realestatesurvey threads=5
WSGIScriptAlias/RealEstateSurvey/var/www/RealEstateSurvey/mydata/wsgi.py
别名/RealEstateSurvey/static//var/www/RealEstateSurvey/mydata/static/
命令允许,拒绝
通融

对于烧瓶模板,只需使用 对于Django: STATIC_URL='/realestatesurvey/STATIC' 在html文件中:-

您是在尝试为多个站点提供服务还是使用多个应用程序为单个站点提供服务?这也适用于静态文件服务视图。来自文档:“此设置定义了如果启用了FileSystemFinder,staticfiles应用程序将遍历的其他位置,例如,如果使用collectstatic或findstatic管理命令或使用静态文件服务视图”,则可以为任意多个目录添加别名。问题在于相同的URL路径。是的,2个或更多目录。静态视图内置于
django.contrib.staticfiles.views.service()
view。再次检查第一个链接上的文档。是的,开发过程中不需要apache are位。