我尝试将静态图片添加到默认的home.html页面,但它却找不到它。
HTML:
{% load static %}
<html>
<head>
</head>
<body>
<img src="{% static 'Logo_Trans.png' %}">
<div class="left"></div>
<div class="right">
<p>is coming soon</p>
</div>
</body>
</html>
所有其他文件都在给出的repo中列出。
答案 0 :(得分:1)
我发现了问题。静态文件在部署时正常运行,但在调试模式下则不正常。要解决这个问题,只需在settings.py
中添加STATICFILES_DIR变量即可查找
if ON_OPENSHIFT:
DEBUG = False
else:
DEBUG = True
添加:
if ON_OPENSHIFT:
DEBUG = False
else:
DEBUG = True
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),
'/var/www/static/',)
Openshift是一项非常好的服务,但绝对需要为django更新他们的文档/示例。他们的示例程序仍然运行django 1.4。希望这能帮助遇到此问题的其他任何人。
答案 1 :(得分:1)
您可以阅读此问题的答案Django cannot find static files. Need a second pair of eyes, I'm going crazy。希望它能帮助您理解静态文件。 Django中的静态文件总是有点痛苦。
顺便说一句,正如我在上一篇评论中所解释的那样,我建议你在其中的静态文件夹中创建一个名为common的应用程序,以放置非特定于应用程序的静态内容。静态应用程序特定文件应放在应用程序中的静态文件夹中。这样,你可以忘记定义STATICFILES_DIRS变量,它总是在DEBUG模式下工作。
之后,ofc,定义STATIC_ROOT,当你想在部署模式下工作时,执行collectstatic命令,它也可以工作。
经过数百次这样的问题处理后,我发现这是最好的方法。