我在http://example.com
有一个公司wordpress博客,Django应用程序已在http://example.com/web
成功部署。
我的应用程序是一个简单的应用程序(我还在学习Django),我希望有一个“欢迎”页面(以及其他页面)的背景。
我在文档中读到我需要使用STATIC_URL
- 所以这就是我拥有的和我做的:
settings.py
文件中与提供静态文件相关的内容:STATIC_URL = '/web/static/' SETTINGS_PATH = os.path.dirname(__file__) PROJECT_PATH = os.path.join(SETTINGS_PATH, os.pardir) STATICFILES_DIRS = (os.path.join(PROJECT_PATH, "static"), ) USE_X_FORWARDED_HOST = True FORCE_SCRIPT_NAME = '/web' SUB_SITE = "/web"
这是模板文件base.html
,其中我想将back.jpg
用作网页背景图片:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Simple Site
{% block title %}{% endblock %}</title>
</head>
<body background="/static/back.jpg" text="white"/>
<div align="center">
<h1>{% block head %}{% endblock %}</h1>
{% block content %}{% endblock %}
</div>
</body>
</html>
然而,我看不到图像。这是一个生产(非开发)应用程序。我怎么解决这个问题?
答案 0 :(得分:3)
您的背景正在寻找背景图片的错误位置,您应该使用static
template tag
<body background="{% static 'back.jpg' %}" text="white"/>
要使用此功能,您需要加载静态(最好是模板顶部)
{% load static %}
答案 1 :(得分:2)
使用任何网络服务器(Apache或Nginx),您需要将它们配置为服务静态文件。
<强> Nginx的强>
查看nginx资源的serving static content部分。
location /web/static {
root /path/to/example.com/static/;
}
<强>的Apache 强>
Django有good documentation部署Apache和mod_wsgi
,包括如何serve static files。
Alias /web/static/ /path/to/example.com/static/
<Directory /path/to/mysite.com/static>
Require all granted
</Directory>