繁体   English   中英

服务 Django 静态文件时遇到问题

[英]Trouble Serving Django Static Files

我在使用 runserver 提供静态文件时遇到了很多困难。 我已经包含了下面的配置,有人可以帮忙吗?

STATIC_URL = '/static/'

STATICFILES_DIR = (
    os.path.join(BASE_DIR, 'static'),
)

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

这是我的 base.html 文件的顶部:

<!DOCTYPE html>
{% load static %}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
<link href='https://fonts.googleapis.com/css?family=Satisfy' rel='stylesheet' type='text/css'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

到目前为止我做了什么:

我已经发出了 'python manage.py collectstatic' 命令,并且只有 'admin' 静态文件放在 /staticfiles 目录中。 运行命令“python manage.py findstatic css/style.css --verbosity 3”时,我得到以下结果:

C:\\Users\\john.doe\\Desktop\\sysnet>python manage.py findstatic css/style.css --verbosity 3 找不到与“css/style.css”匹配的文件。

在以下位置查看:
C:\\Python27\\lib\\site-packages\\django\\contrib\\admin\\static

C:\\Users\\john.doe\\Desktop\\sysnet>

为什么要搜索 Python27\\lib\\site-packages\\django\\contrib\\admin\\static ? 我猜这就是为什么 collectstatic 命令没有将来自 /static 的文件放在 /staticfiles 中?

我已经包含了下面的目录结构(减去文件),有人可以帮忙吗?

sysnet
├───.idea
├───chef
│   ├───migrations
│   └───templates
├───static
│   ├───css
│   ├───img
│   └───js
├───staticfiles
│   └───admin
│       ├───css
│       ├───fonts
│       ├───img
│       │   └───gis
│       └───js
│           ├───admin
│           └───vendor
│               ├───jquery
│               └───xregexp
└───sysnet

我的 style.css 在 /static/css 中,它应该可以工作。 控制台输出总是显示 404 not found。

[29/Nov/2017 14:42:34] "GET / HTTP/1.1" 200 3588
[29/Nov/2017 14:42:34] "GET /static/css/style.css HTTP/1.1" 404 1652

我应该注意到,除了静态文件之外,一切正常。

设置名称是STATICFILES_DIRS (复数)。

您的 STATICFILES_DIR 是一个元组,它应该是一个列表。 你把它括在括号中,而它应该是这样的:

STATICFILES_DIR = [os.path.join(BASE_DIR, 'static'),]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM