现在我已经尝试设置我的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”)
STATIC_URL = '/静态/'
我的css文件位于/static/css/stylesheet.css
下我的html模板有链接
link rel =“stylesheet”type =“text / css”href =“{{STATIC_URL}} css / stylesheet”
运行服务器后,页面加载就好了。然而django找不到我的样式表......
我在这里做错了什么?
答案 0 :(得分:1)
静态root和url实际上并不托管文件。前面提到的静态服务选项(在urls.py中)是开发和学习的一个很好的选择,但如果你转移到部署服务器,你应该使用你的网络服务器提供的静态主机。
静态文件夹的工作方式是将每个应用程序,项目等的路径位置添加到settings.py中的静态目录设置。然后,当您运行命令“django-admin.py collectstatic”时,django会将您的所有目录拉入静态根目录。在第一次运行collectstatic之后,只会再次复制已更改的文件。这将多个静态目录合并到一个公共位置。
答案 1 :(得分:0)
您需要将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))
答案 2 :(得分:0)
我建议你在url.py文件中使用这样的django.views.static.serve实例:
(r'^(?P<path>.*)$', 'django.views.static.serve',{'document_root': '/path/to/css/'}),