-->

Django的:GET CSS返回404?(Django: GET css returns 404?

2019-08-18 01:00发布

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

我会继续这个问题的信息更新,我排除/接收答案。

Answer 1:

有一些你需要为了得到在开发平台上工作的静态网址做的事情。

为此,我建议通过寻找和阅读此链接。 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文件



Answer 2:

解决的办法是:

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

这是在Django的1.7调用静态文件的正确道路。



文章来源: Django: GET css returns 404?