我是 django 的新手,正在尝试创建个人技术博客。我在 webfaction 上托管。我已经使用 this video 设置了博客。但样式表不起作用。我关注了the step-by-step procedure创建 webfaction 提到的静态文件,但 STLyesheet 仍然无法工作。
我创建了一个静态应用程序:staticapp
并使用 /static
将其添加到网站
正如 webfaction 文档中提到的。
在settings.py
中:
STATIC_ROOT = 'home/myaccount/webapps/staticapp'
STATIC_URL = 'http://myblogtest.myaccount.webfactional.com/static'
STATICFILES_DIRS = ( 'junk','static',)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'blog',
)
我从我的 html 页面引用如下:
<link rel="stylesheet" type="text/css" href="static/style/style.css" />
我错过了什么步骤吗?我可以看到很多答案都说在 urls.py 中添加代码片段,但 Webfaction 的文档中没有提及。所以我没有这样做。
我可以看到很多人都面临着同样的问题,但答案对我没有帮助,因为我是新手。请帮我设置这个。 :)
最佳答案
STATIC_ROOT
需要有一个前置斜杠 /
,即 /home...
不是 家...
请勿将static
目录添加到STATICFILES_DIRS
。我允许你用最近的钝器打任何建议你这样做的人。 static
目录在开发中不应该存在,而在生产中它只能通过 python manage.pycollectstatic
创建或修改。
一定将静态资源存储在每个应用程序的单独 static
目录或完全不同的元素级目录中,即该目录不应与 MEDIA_ROOT
或STATIC_ROOT
。然后,将此目录添加到STATICFILES_DIRS
。
在 Django 1.4+ 中,您应该在模板中使用 {% static %}
模板标签:
{% load static from staticfiles %}
<img src="{% static "images/hi.jpg" %}" alt="Hi!" />
这会自动为您附加 URL 的 STATIC_URL
部分,因此您提供的路径参数应该与该部分相关。
在 Django 1.3 中,在确保 'django.core.context_processors.static'
出现在 TEMPLATE_CONTEXT_PROCESSORS 中的某个位置后,您可以使用
设置。您的 View 还需要利用 {{ STATIC_URL }}
RequestContext
,这意味着使用基于类的 View 、render
方法,或传递 context_instance=RequestContext(request)
到 render_to_response
。
如果您希望 Django 在开发中轻松提供静态文件,您可以将以下内容添加到 urls.py
的末尾:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
这无法在生产环境中工作(DEBUG=False
)。对于生产环境,您需要运行 python manage.pycollectstatic
,然后让您的前端 Web 服务器(nginx、Apache 等)为 STATIC_URL
处的目录提供服务。
关于python - 为 css 文件设置 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712177/