Django外部css文件问题

时间:2011-03-04 20:01:42

标签: css django static

现在我已经尝试设置我的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找不到我的样式表......

我在这里做错了什么?

3 个答案:

答案 0 :(得分:1)

静态root和url实际上并不托管文件。前面提到的静态服务选项(在urls.py中)是开发和学习的一个很好的选择,但如果你转移到部署服务器,你应该使用你的网络服务器提供的静态主机。

静态文件夹的工作方式是将每个应用程序,项目等的路径位置添加到settings.py中的静态目录设置。然后,当您运行命令“django-admin.py collectstatic”时,django会将您的所有目录拉入静态根目录。在第一次运行collectstatic之后,只会再次复制已更改的文件。这将多个静态目录合并到一个公共位置。

Static files documentation

答案 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/'}),