运行`gunicorn_django`时不提供staticfiles默认行为?

时间:2012-08-17 10:36:44

标签: python django gunicorn static-files

除静态文件外,

myproject_django$ gunicorn_django为我的网站提供服务。任何想法为什么?我是使用django 1.3从虚拟环境运行它。

项目树

myproject_django
├── core
│   ├── admin.py
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── views.py
├── __init__.py
├── manage.py
├── settings.py
├── static
│   ├── css
│   │   ├── base.css
│   │   ├── layout.css
│   │   └── skeleton.css
│   └── media
│       ├── pek.ico
│       ├── pek.png
│       └── pek_symbol.png
├── templates
│   └── core
│       ├── 404.html
│       ├── 500.html
│       ├── home.html
│       └── install.html
├── urls.py

可能相关的settings.py部分

PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))

MEDIA_ROOT = ''

MEDIA_URL = '/static/media'

STATIC_ROOT = os.path.join(PROJECT_PATH,'static')

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(PROJECT_PATH, 'static'),
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',
    'gunicorn',
    'django.contrib.admin',
)

1 个答案:

答案 0 :(得分:3)

您可能希望配置nginx或apache来处理静态文件。现在尝试运行python manage.py collectstatic并将以下代码添加到urls.py

urls.py

if settings.DEBUG:
    urlpatterns += patterns('',
            (r'^static/media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes':True}),
        )
    urlpatterns += patterns('',
                 (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT, 'show_indexes':True}),
            )