Это не такие простые вопросы, как другие ... по крайней мере.это не проблема, чтобы установить простое расположение статических файлов на основе одного директора ..
https://bitbucket.org/sirex/django-starter/src
Здесь есть такой интересный проект .. этот использует дистрибутив и сборку для созданияВесь проект и Django с модулями в одном реж.вы можете легко перейти с dev на рабочий режим и т. д. все, что вам нужно, это просто переименовать dir и набрать в нем «make», и все! =) там есть руководство ...
Ситуация, котораяработает с сервером Python и не работает с apache mod_wsgi: расположение статических файлов по умолчанию: "var / htdocs / static".Это можно переопределить с помощью одной статической директории, например apps / myapp / myapp / static /.Это работает с веб-сервером Python, но не работает с wsgi / apache.wsgi не может видеть ничего, кроме каталога по умолчанию .. пример: http://localhost:8000/static/css/main.css работает, но с Apache тот же URL не работает.и этот файл находится в myproject / apps / myapp / myapp / static / css / main.css, хотя статическим каталогом по умолчанию является var / htdocs / static =)
Насколько я понимаю, это переопределение сделано в приложении StaticFiles вsettings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BUILDOUT_DIR, 'var', 'htdocs', 'static')
STATICFILES_DIRS = (
os.path.join(BUILDOUT_DIR, 'project', 'static'), # <-- why "project" and not "apps" I don't know X_X
)
возможно, это неверно, я не знаю, но с py-сервером это работает.apache vhost работает с расположением по умолчанию .. и настроен на "var / htdocs / static".
Может быть, проблема в сценарии wsgi?
#!/usr/local/bin/python2.6
import os,sys
sys.path[0:0] = [
'/usr/local/lib/python2.6/site-packages/',
'/www/webapp/visimes/eggs/PIL-1.1.7-py2.6-freebsd-8.1-RELEASE-amd64.egg',
'/www/webapp/visimes/eggs/South-0.7.3-py2.6.egg',
'/www/webapp/visimes/eggs/django_annoying-0.7.6-py2.6.egg',
'/www/webapp/visimes/eggs/coverage-3.4-py2.6-freebsd-8.1-RELEASE-amd64.egg',
'/www/webapp/visimes/eggs/django_debug_toolbar-0.8.4-py2.6.egg',
'/www/webapp/visimes/eggs/django_extensions-0.6-py2.6.egg',
'/www/webapp/visimes/eggs/django_test_utils-0.3-py2.6.egg',
'/www/webapp/visimes/eggs/ipdb-0.3-py2.6.egg',
'/www/webapp/visimes/eggs/ipython-0.10.1-py2.6.egg',
'/www/webapp/visimes/eggs/djangorecipe-0.21-py2.6.egg',
'/www/webapp/visimes/eggs/zc.recipe.egg-1.3.2-py2.6.egg',
'/www/webapp/visimes/eggs/zc.buildout-1.5.2-py2.6.egg',
'/www/webapp/visimes/eggs/BeautifulSoup-3.2.0-py2.6.egg',
'/www/webapp/visimes/eggs/setuptools-0.6c12dev_r88795-py2.6.egg',
'/www/webapp/visimes/parts/django',
'/www/webapp/visimes',
'/www/webapp/visimes/project', # <-- this one need for monitor.py which i put in there
'/www/webapp/visimes/apps/portal', # <-- startapp.sh script some how forgot to add this dir, it's my default app dir, which must be generated with startapp.sh and added in here..
]
import djangorecipe.wsgi
if __name__ == '__main__':
djangorecipe.manage.main('project.development')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.development'
import monitor
monitor.start(interval=1.0)
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Я добавил последние 4 строки самостоятельно.потому что я не смог запустить apache .. Я предполагаю, что djangorecipe.wsgi должен обрабатывать все остальное с помощью переопределения staticFile ... в любом случае, пожалуйста, проверьте этот пакет, если вы используете Linux или Mac, и попробуйте его самостоятельно.должно работать
пс.(кстати, bin / django нужно дублировать как bin / django.wsgi и т.д. / apache.conf генерируется vhost для apache)... тогда вы все поймете. =)
Редактировать: любая информация о том, как WSGI может понять, где ему нужно искать статические файлы, кроме местоположения по умолчанию из настроек django, ДЕЙСТВИТЕЛЬНО приветствуется =)