项目模板使用app静态文件

时间:2013-08-28 06:47:01

标签: python django

很抱歉,如果这听起来像一个愚蠢而又长的问题,但我是django的新手,我已经搜索了这个问题,但仍然无法解决我的问题。 如果我正在扩展html,请说home.html

{% extends "blog/home.html" %}

在另一个应用的HTML中,说文章/ id.html;和blog / home.html有自己的静态文件,打开id.html时会加载style.css吗?

我的问题是,在myproject文件夹下,包含urls.py等的文件夹,我创建了一个名为templates的目录

|--myproject
|   |--blog
|   |    |-- templates
|   |    |    |-- blog
|   |    |    |    |-- home.html
|   |    |-- static
|   |    |    |-- css
|   |    |        |-- styles.html
|   |    |-- __init__.py
|   |    |-- models.py
|   |    |-- tests.py
|   |    |-- urls.py
|   |    |-- views.py
|   |--article
|   |    |-- templates
|   |    |    |-- article
|   |    |    |    |-- id.html
|   |    |-- __init__.py
|   |    |-- models.py
|   |    |-- tests.py
|   |    |-- urls.py
|   |    |-- views.py
|   |--myproject
|   |    |-- templates
|   |    |    |-- myproject
|   |    |    |    |-- login.html
|   |    |    |    |-- logout.html
|   |    |    |    |-- loggedin.html
|   |    |-- __init__.py
|   |    |-- models.py
|   |    |-- tests.py
|   |    |-- urls.py
|   |    |-- views.py

我修改了myproject的网址和视图,urls.py:

url(r'^blog/', include('blog.urls')),
url(r'^article/', include('article.urls')),
url(r'^admin/', include(admin.site.urls)),  
url(r'^accounts/login/$', views.login, name='login'),
url(r'^accounts/logout/$', views.logout, name='logout'),
url(r'^accounts/loggedin/$', views.loggedin, name='loggedin'),

这些login.html,logout.html,loggedin.html和id.html都扩展到home.html。 出于某种原因,当我运行我的服务器并尝试转到

localhost:8000/accounts/login

,它试图从

获取styles.css
[27/Aug/2013 23:34:06] "GET /accounts/login/css/styles.css HTTP/1.1" 404 2875

不是来自

static/css/styles.css

正如我所料,但是当我尝试从文章应用程序打开id.html时它工作正常。

这就是我在blog / home.html

中导入css的方式
<link rel="stylesheet" type "text/css" href="{{ STATIC_URL }}css/styles.css"/>

我做错了吗?我怎样才能让myproject html使用博客应用程序中的静态文件?注意我正在使用Django 1.5

2 个答案:

答案 0 :(得分:0)

您的STATIC_URL个设置必须以斜杠/结尾。在本地,开发时应如下所示:STATIC_URL = '/static/'。你有吗?

答案 1 :(得分:0)

似乎改变了我在htmls中检索静态文件的方式修复了问题。 我以前这样做过:

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

并将其更改为固定它:

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