2015-05-20 4 views
1

Есть ли способ обслуживать 2 или более статических каталога из Apache? Я использую Django, и он отлично работает с 1 статическим путем; когда я ставлю 2, он игнорирует второй.Подавать несколько статических каталогов Django с Apache

Я не хочу использовать коллектор. Просто пытаюсь настроить среду разработки, и мне нравится сохранять свою статистику в каждом приложении отдельно. Я знаю, что в производстве это изменится.

Вот мой 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> 

игры приложение работает; CSS-код и загрузки изображений

ice_cream приложение не загружается и игнорируются

ответ

1

Вы пытаетесь Псевдоним же URL пути /static/ на две директории. Вот почему он терпит неудачу.

Django имеет очень тонкую на Serving static files during development. справки о

Проверить STATICFILES_DIRS Настройки документов для обслуживания статических файлов из нескольких каталогов.

Если вы пытаетесь обслуживать несколько проектов static, вы можете считать VirtualHost.

+0

Да, я прочитал все, что на официальная документация. Однако он никогда не упоминал 2 каталога, поэтому я предполагал, что это невозможно. Также как мы можем использовать VirtualHost? Благодарю. –

+1

Проверьте обновление для нескольких каталогов. – moonstruck

+1

Вы пытаетесь обслуживать несколько сайтов или один сайт с несколькими приложениями? – moonstruck

0

Я правильно понял, что нужно сделать, чтобы обслуживать несколько статических каталогов с помощью Apache.

Эта страница https://docs.djangoproject.com/en/1.8/howto/static-files/ упоминает об этом:

«Кроме того, эта вспомогательная функция служит только фактическую папку STATIC_ROOT, он не выполняет статические файлы, как открытие django.contrib.staticfiles.»

Добавление + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) в urls.py не загружает css и изображения. Вы должны более внимательно прочитать немного, и перейдите на эту страницу:

https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve

Я добавил следующее к моему urls.py и теперь он работает:

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

if settings.DEBUG: 
    urlpatterns += [ 
     url(r'^static/(?P<path>.*)$', views.serve), 
    ] 

Я просто закомментировал псевдонимы и каталоги, указывающие на 2 статических каталога в файле httpd.conf Apache. Конечно, это строго для сервера разработки, так как мне нравится сохранять свою статистику в каждом приложении.

1

У меня также была такая же проблема до сегодняшнего утра, и я приземлился на этой странице, чтобы понять, почему мои статические конфиги файлов были неудачными.

Вы можете обслуживать несколько приложений с несколькими статическими местоположениями. Посмотрите, как у меня есть два приложения Flask и одно приложение Django, а также статические файлы, которые обслуживаются из разных мест для всех.

Имя сервера ec2-52-20-211-238.compute-1.amazonaws.ком

# 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> 

Для шаблона колба просто использовать Для Джанго: STATIC_URL = '/ RealEsatateSurvey/статические' в HTML файлах: -

Смежные вопросы