几天以来,我一直在尝试设置django项目,以使用外部css文件运行html模板。到目前为止,没有成功....
我已经安装了staticfiles(我使用django 1.2.4。),然后将'staticfiles'放入settings.py中的INSTALLED_APPS中,并添加了以下代码:
STATIC_ROOT = os.path.join(os.path.abspath(os.path.dirname(file)),“静态”)
STATIC_URL = '/静态/'
我的css文件位于/static/css/stylesheet.css下
我的html模板具有链接
link rel =“ stylesheet” type =“ text / css” href =“ {{STATIC_URL}} css / stylesheet”
运行服务器后,页面加载正常。但是,django找不到我的样式表...
我在这里做错了什么?
静态根目录和url实际上并不托管文件。前面提到的static serve选项(在urls.py中)是开发和学习的不错选择,但是如果移至部署服务器,则应使用Web服务器提供的静态托管。
静态文件夹的工作方式是,将每个应用程序,项目等的路径位置添加到settings.py中的静态目录设置中。然后,当您运行命令“ django-admin.py collectstatic”时,django将所有目录拉入静态根目录。首次运行collectstatic后,将仅再次复制已更改的文件。这将多个静态目录合并到一个公共位置。
您需要将RequestContext
传递到视图,因此它将通过静态文件的CONTEXT_PROCESSORS
(包括STATIC_URL
变量)运行。
from django.template.context import RequestContext
context = {'my_other_context': 1}
render_to_response('your_template.html',
context_instance=RequestContext(request, context))
我建议您仅在url.py文件中使用类似django.views.static.serve的实例:
(r'^(?P<path>.*)$', 'django.views.static.serve',{'document_root': '/path/to/css/'}),