Django:GET css返回404?

时间:2013-03-26 15:56:32

标签: python css django http-status-code-404 urlconf

我正在开发一个Django网站,经过一系列的编辑,我突然再次运行我的服务器 - 没有CSS!当然,服务器仍然显示html站点,但整个站点的css都会抛出404错误。我的settings.py中的静态文件信息根本没有编辑过:

import os
# hack to accommodate Windows
CURRENT_PATH = os.path.abspath(os.path.dirname(__file__).decode('utf-8')).replace('\\', '/')

STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    os.path.join(CURRENT_PATH, 'static'),
)

我的基本模板基于静态文件目录对文件进行简单调用:

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

最后,当然,这是我的相关目录结构的快速细分,因为我怀疑错误是某种目录问题:

-project-
     settings.py
     -static-
         css.css
     -templates-
         base.html
         index.html

我只提供了index.html的位置,但模板文件夹当然填充了各种模板/页面的目录。

我会在解决/接收答案时将此问题更新为信息。

2 个答案:

答案 0 :(得分:2)

为了让静态网址在开发平台上运行,您需要做很多事情。

为此我建议浏览并阅读此链接。 https://docs.djangoproject.com/en/dev/howto/static-files/

除此之外,您还需要从视图中返回请求上下文。

请注意,在您的urls.py文件中,您还需要添加该行。

urlpatterns += staticfiles_urlpatterns()

此行允许开发服务器中的URL模块提供静态文件。

我还注意到您的os.path.join代码中有一个变量。如果您使用的是基本的django设置,os.path.join已经指向您的开发目录。

你应该可以使用:

# Additional locations of static files
STATICFILES_DIRS = (
    os.path.join('static'),
)

注意:还要确保您的视图是返回请求上下文,因为这是填充STATIC_URL变量所必需的。同样,请确保将settings.py添加到{{1}}文件中

答案 1 :(得分:0)

解决方案是:

{% load static from staticfiles %}
<link rel="Stylesheet" type="text/css" href="{% static "css.css" %}"/>

这是在Django 1.7上调用静态文件的正确方法。