2

我正在开发一个 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 的位置,但模板文件夹当然充满了各种模板/页面的目录。

在排除故障/接收答案时,我会及时更新这个问题的信息。

4

2 回答 2

2

为了让静态 url 在开发平台上工作,您需要做很多事情。

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

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

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

urlpatterns += staticfiles_urlpatterns()

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

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

您应该能够使用:

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

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

于 2013-03-26T16:05:14.827 回答
0

解决方案是:

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

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

于 2015-01-31T01:44:27.363 回答