gpt4 book ai didi

css - 如何在 Django 1.4 中为本地开发提供静态文件

转载 作者:技术小花猫 更新时间:2023-10-29 11:08:50 25 4
gpt4 key购买 nike

我刚刚下载了最新的 Django 版本(1.4.1),我不知道在使用 runserver 进行本地开发时如何提供 css 文件。我已经阅读了相关的 Django docs on static files这里有很多很多问题和答案...听起来应该或多或少是自动的,但它对我不起作用。

我正在开发教程中的投票应用程序。

404 来自日志

[27/Apr/2012 01:04:09] "GET /polls/ HTTP/1.1" 200 210
[27/Apr/2012 01:04:09] "GET /polls/css/styles.css HTTP/1.1" 404 2596

目录结构

mysite
|-- manage.py
|-- mysite
|-- __init__.py
|-- settings.py
|-- urls.py
|-- wsgi.py
|-- polls
|-- __init__.py
|-- models.py
|-- tests.py
|-- views.py
|-- static
|-- css
|-- styles.css
|-- templates
|-- polls
|-- index.html

index.html

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/styles.css">

settings.py

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
'django.core.context_processors.static',
)

^^^ 我在启动元素时在 settings.py 中没有 TEMPLATE_CONTEXT_PROCESSORS 变量,不得不手动添加它 - 我应该为此担心吗?

STATICFILES_DIRS 是空的,因为 css 文件位于投票应用程序中名为 static 的目录中,这是 Django 自动查找它的地方 - 对吗?

我的 INSTALLED_APPS 中也有 django.contrib.staticfiles。

urls.py

我在文档中看到此解决方案适用于本地开发服务器 other 而不是 runserver - 听起来没有必要,对吗? (我目前已将其注释掉。)

编辑:我取消注释这些行,但没有看到任何变化 - 仍然在 css 文件上得到相同的 404

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()

我的目录结构设置有误吗?我是否缺少 settings.py 中的必要设置?任何帮助将不胜感激!谢谢!


编辑:

我采纳了 Mark 的建议并阅读了 RequestContext。改变我的观点:

return render_to_response('polls/index.html', {'latest_poll_list': latest_poll_list})

from django.template import RequestContext
...
return render_to_response('polls/index.html', {'latest_poll_list': latest_poll_list}, context_instance=RequestContext(request))

获取/static/url 进行注册:

[27/Apr/2012 13:56:55] "GET /static/css/styles.css HTTP/1.1" 200 19

这解决了问题。

最佳答案

为了在模板中使用 STATIC_URL,您需要确保使用 RequestContext 并添加 'django.core.context_processors.static' TEMPLATE_CONTEXT_PROCESSORS。如果您使用 render 快捷方式,这是为您完成的。如果您没有使用 RequestContext,那么您可以使用 staticfiles 模板标签库中的 {% get_static_prefix %} 模板标签。这在此处的文档中有详细说明:https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/#other-helpers

关于css - 如何在 Django 1.4 中为本地开发提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10355194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com