Django 没有加载我的静态文件。但是它正在加载静态文件夹中的我的模板。另外,chrome 也看不到静态文件,我什至没有收到 404 错误,是的,它们链接在 html 中...但它们没有显示在网络面板中
这是我的 settings.py 文件
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS =(
os.path.join(BASE_DIR, 'static'),
)
这是我的 html
<head>
<title>MySite | Home</title>
<meta charset="UTF-8">
<link rel="stylesheet" type='text/css' src='css/normalize.css'>
<link href='http://fonts.googleapis.com/css?family=Questrial|Josefin+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" src='css/main.css'>
<script src="https://maps.googleapis.com/maps/api/js"></script>
</head>
抱歉,我知道这个问题已被问过多次,并且我已经尝试了所有这些解决方案,但没有成功。我花了两天时间试图解决这个问题
最佳答案
我对静态文件采取的方法基本上是 docs 中概述的。 .
在本地开发中,Django 将自动从 STATIC_ROOT
中指定的目录提供静态文件。只要django.contrib.staticfiles
在你的 INSTALLED_APPS
中和DEBUG = True
我的项目结构通常如下所示:
my_project/
some_app/
lib/
static/ <------- STATIC_ROOT - used in production. `collectstatic` collects here
static_assets/ <- STATICFILES_DIRS - used in local dev
css/
less/
js/
images/
templates/ <---- TEMPLATE_DIRS
manage.py
settings.py 通常是:
INSTALLED_APPS = (
. . .
'django.contrib.staticfiles',
. . .
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static_assets'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
然后在模板中,您可以再次使用 staticfiles 应用程序的模板标记来构建静态文件的路径:
{% load static from staticfiles %}
<link rel="stylesheet" href="{% static 'css/normalize.css' %}" />
另请注意,<link>
标签,您需要使用 href
url 的属性而不是 src
。
关于python - Django 加载静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30130308/