OpenShift Django上的静态文件

发布于 2021-01-29 17:00:26

我在提供静态文件时遇到问题-即样式表和html页面所需的图像。我似乎无法理解为什么找不到这些静态图像。这是我的东西settings.py

    STATIC_URL = PROJECT_PATH + '/static/'

# Additional locations of static files
STATICFILES_DIRS = (PROJECT_PATH + "/static/",)

STATIC_ROOT = "/static/"


# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

当我拖入日志时,出现了404错误。但是我无法弄清楚OpenShift在哪里寻找或调试这些图像。我已经尝试过使用,STATIC_URL = '/static/'但这也不起作用。

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    1) 您混淆了STATIC_URL和STATIC_ROOT变量。

    STATIC_ROOT:需要指向要收集静态文件的目录。在这种情况下,似乎是PROJECT_PATH +’/ static /’。 确保 此目录正确。

    STATIC_URL:访问静态文件的URL。/ static /是正确的。

    删除STATICFILES_DIRS变量。它不能与STATIC_ROOT相同,因为在收集静态文件时,它首先告诉Django在哪里查找静态文件,然后告诉Django在哪里存储静态文件。

    2) 如果您正在使用Openshift,如@ timo.rieber所指出的,您将需要一个action_hook进行部署,以告诉它收集静态文件。

    3) 您的static_root文件夹不能在项目中的任何位置,因为Openshift Web服务器找不到它。它应该在yourproject /
    wsgi / static <-–下(因此,这将是STATIC_ROOT变量值)。

    正如我在另一个问题中已经回答过的那样,为Openshift从头开始一个新项目很痛苦。我写了一篇有关创建一个新项目以使其与Openshift一起使用的文章,您也可以访问那里引用的提交,这会将您重定向到一个有效的基本Openshift项目。您也可以从Openshift存储库下载基本项目,但它遵循旧的(但仍在运行)项目结构。您现在可以为python应用程序使用更简单的项目结构



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看