【问题标题】:CSS does not load from static folder in Django with HTTP status code 200CSS 不会从 Django 中的静态文件夹加载,HTTP 状态代码为 200
【发布时间】:2016-07-27 16:18:51
【问题描述】:

我知道多年来hereherehere(和其他人)已被问过数百次,但我无法从我的静态文件夹中加载我的 css 文件。

  • Django 1.7
  • Python 2.7

我的命令行说

[07/Apr/2016 10:56:13] "GET / HTTP/1.1" 200 3596
[07/Apr/2016 10:56:13] "GET /static/compile/css/fbparse.min.6d40ca4cc832.css HTTP/1.1" 200 64
[07/Apr/2016 10:56:13] "GET /static/compile/js/fbparse.min.b40ef3f82f3a.js HTTP/1.1" 200 64

但是,我的日志文件说

2016-04-07 10:45:14,333 [WARNING] django.request: Not Found: /static/compile/css/fbparse.min.6d40ca4cc832.css
2016-04-07 10:56:13,848 [WARNING] django.request: Not Found: /static/compile/css/fbparse.min.6d40ca4cc832.css
2016-04-07 10:56:13,852 [WARNING] django.request: Not Found: /static/compile/js/fbparse.min.b40ef3f82f3a.js

当然,该站点不会加载 css 文件。

当我尝试时

http://127.0.0.1:8000/static/compile/css/fbparse.min.6d40ca4cc832.css

它给了我错误 404

这是我在设置文件中的内容

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
rel = lambda *x: os.path.join(BASE_DIR, *x)

DEBUG = False

MEDIA_ROOT = rel('public', 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = rel('public', 'static')
STATIC_URL = '/static/'


STATICFILES_DIRS = (
    rel('static_src'),
)

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

.....
)

这是我在 Base html 中的内容

<!DOCTYPE html>
{% load pipeline static i18n stats_tags %}
<html>
<head>
    <meta charset=utf-8 />

    <title>My site title</title>

    {% stylesheet 'global' %}

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    {% javascript 'global' %}
    {% if debug %}
        <script src="{% static "components/less.js/dist/less.min.js" %}"></script>
        {% if LESS_DEBUG %}
            <script type="text/javascript">
                less.env = "development";
                less.watch();
            </script>
        {% endif %}
    {% endif %}

</head>

我尝试将静态文件夹放在根目录中,在 public 中,在 static_src 中,但似乎没有任何效果。

谁能告诉我我做错了什么?

【问题讨论】:

  • 你的static文件夹中真的有这个文件吗?
  • 是的。我已经检查了很多次以确保我有那个。还检查了内容是否正确 - 文件名是否正确等。一切都在那里..
  • 为你设置静态文件..试试这些STATIC_PATH = os.path.join(BASE_DIR,'static')STATIC_URL = '/static/' # You may find this is already defined as such.STATICFILES_DIRS = ( STATIC_PATH, )
  • 最重要的是使用{% load staticfiles %}。导入"{% static "test.css" %}"等静态文件
  • @ManishGupta 尝试了你所建议的一切。不工作。根据 http 错误代码,可能是 URL.py 问题,但仍未解决

标签: python css django http django-staticfiles


【解决方案1】:

你用过manage.py runserver吗?

在这种情况下,您想使用带有DEBUG = False 的开发服务器,您可以通过manage.py runserver --insecure 模拟它。

如果您想使用 Apache 之类的 WAS 部署 django 项目,您需要独立地提供静态文件,如 Docs 中所述。

【讨论】:

  • 我要部署。 Debug = False 绝对有效,但您不能将其用于生产。我浏览过文档。
猜你喜欢
  • 2017-10-08
  • 2021-02-01
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 2012-04-30
  • 2014-10-31
  • 2021-05-28
  • 2020-12-30
相关资源
最近更新 更多