Bluemix Cloud Foundry,在Django中引用静态文件

时间:2017-08-24 03:41:38

标签: python django ibm-cloud django-staticfiles

我正在尝试使用Bluemix Cloud Foundry和Python 3.5.3学习Django开发。

我此时正在运行一个hello world网站。但我无法获得像CSS这样的静态文件。

我认为我找到静态文件的设置不正确。

我的服务页面看起来像是:

correct result

我得到的是:

actual result

我在settings.py中使用Debug = True在本地获得了正确的结果,但没有使用Debug = False。无论Debug设置如何,当推送到Bluemix时,我都无法获得正确的结果。

我的项目文件夹设置如下:

Project Folder Structure

django staticfiles应用程序位于我的Installed_Apps变量中。

在我的settings.py文件中,我有:

...
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, 'bluemixsite/static'),
#     os.path.join(BASE_DIR, 'bluemixapp/static'),
# ]

STATICFILES_DIRS似乎与查找静态文件无关。

模板页面(正在加载)包括以下内容:

...
{% load static %}

    <link rel="stylesheet" type="text/css" href="{% static 'bluemixapp/stylesheet.css' %}" />
</head>
....

使用Debug = False,在firefox中检查时,我可以在样式编辑器的本地和bluemix上看到此消息:

The requested URL /static/bluemixapp/stylesheet.css was not found on this server.

所以要么我没有正确位置的文件,要么Django无法解析服务器上静态文件的路径。

我尝试了将所有静态文件复制到project_root/static/文件夹中的collectstatic命令,但这没有任何区别。

显然Bluemix拒绝运行linux终端(它们在启动时冻结或崩溃)所以我不能在服务器端做任何事情。

我无法将静态文件加载到单独的服务器上。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试从静态文件加载静态:

{% load static from staticfiles %}

如上所述here