2015-09-27 108 views
0

我正在使用基于django-cms的网站,但遇到了静态文件的问题。正如我打算将站点部署到OpenShift一样,我使用django示例来构建站点(https://github.com/openshift/django-example)。这样,我结束了我的Django项目的下列整体结构:OpenShift的Django cms项目。在哪里放置静态文件?

  • ROOT_FOLDER

    • WSGI

      • 媒体
      • 静态
      • MY_PROJECT

        • 程序my_app
        • 模板

所以你看,这是从标准的Django目录结构略有不同。 Django文档(https://docs.djangoproject.com/en/1.8/howto/static-files/)已经告诉我下面的:

  1. 包含在INSTALLED_APPS django.contrib.staticfiles:完成
  2. 定义静态URL,例如STATIC_URL ='/ static /':完成
  3. 使用静态模板标记来引用静态文件。 {%静态 “程序my_app/myexample.jpg” %}:完成

此外,静态根被定义为

STATIC_ROOT = os.path.join(WSGI_DIR, '静态')

WSGI_DIR指向名为wsgi的文件夹。

当我尝试从我的基本模板中引用静态文件时,我一直在使用Debug = True的开发环境中获取404s。我曾试图将它们放置在没有运气以下位置:

/WSGI /静态/

/WSGI /静态/ my_app应用/

/WSGI/MY_PROJECT /静态/

/WSGI/MY_PROJECT /静态/ my_app应用/

/WSGI/MY_PROJECT/my_app应用/静态/

/WSGI/MY_PROJECT/my_app应用/静态/ my_app应用/

我应该在哪里放置静态文件,并且配置正确?

+0

您运行过'./manage.py collectstatic'吗? – GwynBleidD

+0

我是否需要在dev中使用'Debug = True'来做到这一点?我正在讨论的静态文件是一些自定义文件,它们被手动放置在静态文件夹中,因此没有任何东西可以收集。无论如何,我尝试运行collectstatic并且它没有区别(它只是从我安装的所有应用程序中收集静态文件,这是没有必要的,因为他们已经工作得很好) – ebug

回答

0

我发现my_app不在INSTALLED_APPS列表中(显然这不是我从django-example得到的代码结构的一部分)。当我将应用程序添加到列表中时,它工作正常。静态文件的正确位置:/wsgi/my_project/my_app/static/my_app/