【问题标题】:Django cms project for OpenShift. Where to place static files?OpenShift 的 Django cms 项目。静态文件放在哪里?
【发布时间】:2015-12-24 21:44:35
【问题描述】:

我正在开发一个基于 django-cms 的网站,但在处理静态文件时遇到了问题。当我要将站点部署到 OpenShift 时,我使用了 django-example 来构建站点 (https://github.com/openshift/django-example)。这样我就得到了我的 django 项目的以下整体结构:

  • 根文件夹

    • wsgi

      • 媒体
      • 静态
      • 我的项目

        • 我的应用程序
        • 模板

如您所见,它与标准的 Django 目录结构有点不同。 Django 文档 (https://docs.djangoproject.com/en/1.8/howto/static-files/) 告诉我以下内容:

  1. 在 INSTALLED_APPS 中包含 django.contrib.static 文件:完成
  2. 定义一个静态 url,例如STATIC_URL = '/static/':完成
  3. 使用静态模板标签来引用静态文件,例如{% static "my_app/myexample.jpg" %}:完成

此外,静态根定义为

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

其中 WSGI_DIR 指向名为 wsgi 的文件夹。

当我尝试从基本模板中引用静态文件时,我在使用 Debug=True 的开发环境中不断收到 404。我试图将它们放置在以下位置,但没有成功:

/wsgi/静态/

/wsgi/static/my_app/

/wsgi/my_project/static/

/wsgi/my_project/static/my_app/

/wsgi/my_project/my_app/static/

/wsgi/my_project/my_app/static/my_app/

我应该把静态文件放在哪里,我是否正确配置了它?

【问题讨论】:

  • 你跑./manage.py collectstatic了吗?
  • 我需要在使用Debug=True 的开发人员中执行此操作吗?我所说的静态文件是一些手动放置在静态文件夹中的自定义文件,因此没有什么可收集的。无论如何,我尝试运行 collectstatic 并没有什么区别(它只是从我所有已安装的应用程序中收集静态文件,这不是必需的,因为它们已经可以正常工作了)

标签: django openshift django-cms


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2015-01-26
    • 2014-06-03
    • 2010-11-01
    • 2014-08-27
    相关资源
    最近更新 更多