0

我正在将 Django 应用程序部署到 Stackato。除静态文件外,一切正常。根据文档,这是我在 .yml 文件中的设置:

processes:
  web: $STACKATO_UWSGI --static-map /static=$HOME/static

这是我的本地setting.py:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(PROJECT_PATH, "static"),
    '/var/www/static/',
)

另外,这是我的项目结构

Project -- .....
           |
            static -- css
                  |
                   -- images

我没有从日志中看到任何错误。任何想法?

4

2 回答 2

0

刚刚想通了:

1.当 settings.DEBUG 设置为 True 时,必须包含静态 url 模式:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()

2.静态文件应遵循以下结构:

Project -- <app 'Project'> -- settings.py
           |                  |
           |                  -- urls.py
           |                  |
           |                  -- wsgi.py
           |
           -- <app 'somename'> -- ..
                            |
                            -- static -- <app 'somename'> -- css - a.css
                                                          |
                                                          -- images - a.jpg

3.STATIC_ROOT不应该是静态目录的实际位置,可以是这样:Project/Project/static,而STATICFILES_DIRS必须是实际的静态文件目录,即Project/somename app/static

参考:https ://github.com/mozilla/mozmoderator

于 2015-04-08T16:55:40.747 回答
0

您的配置应该可以工作。您的static/cssstatic/images目录中的具体资产将通过http://your-stackato-host/static/css/yourstyle.css等 URL 获得。

为了帮助解决这个问题,我在 github 上创建了一个简单的示例,您可以克隆并推送到 Stackato 以验证它是否正常工作。

于 2015-04-02T17:10:34.453 回答