无法通过foreman start提供静态文件

时间:2015-01-06 08:14:05

标签: django heroku static foreman

我希望将我的网络应用部署到Heroku上,但我遇到了一些问题。最初,我能够通过' python manage.py runserver'在本地运行应用程序。正好。我将proc文件(如下所示)从kloudtransfer.wsgi更改为kloudless.wsgi,现在我正在使用' foreman start'它无法提供我的静态文件。

以下是我的网络应用的回购:https://github.com/lilshim/kloudtransfer

项目文件夹的结构:

kloudtransfer
    app
            static
                app
                    custom.css
                    magister.css
                    magister.js
                    ...
            templates
            views

    kloudless
            settings.py
            urls.py
            wsgi.py
    requests

settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/dev/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT,'static')
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)

urls.py

urlpatterns += patterns('',
 url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}, name='logout' ),
 (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),

procfile

web: gunicorn kloudless.wsgi --log-file -

任何人都可以就如何处理静态文件提供一些建议吗?其余的项目细节都在回购中。

1 个答案:

答案 0 :(得分:0)

Heroku文档涵盖了此in detail。您需要安装whitenoise库并使用DjangoWhiteNoise类包装WSGI应用程序对象。