Python Django加载静态文件?
Django没有加载我的静态文件。但是,它正在加载静态文件夹中的我的模板。此外,chrome没有看到静态文件,或者我甚至没有收到404错误,是的,它们链接在html中……但是它们没有显示在网络面板中 这是我的settings.py文件Python Django加载静态文件?,python,html,django,Python,Html,Django,Django没有加载我的静态文件。但是,它正在加载静态文件夹中的我的模板。此外,chrome没有看到静态文件,或者我甚至没有收到404错误,是的,它们链接在html中……但是它们没有显示在网络面板中 这是我的settings.py文件 STATIC_ROOT = '' STATIC_URL = '/static/' STATICFILES_DIRS =( os.path.join(BASE_DIR, 'static'), ) 这是我的ht
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>
MySite | Home
对不起,我知道这个问题已经被问了很多次,我已经尝试了所有这些解决方案,但都没有成功。我花了两天的时间试图弄明白这一点,我对静态文件采取的方法基本上就是本文中概述的方法 在本地开发中,只要
Django.contrib.staticfiles
在您的安装的应用程序中,并且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
然后,在模板中,您可以再次使用staticfiles应用程序的模板标记构建静态文件的路径:
{% load static from staticfiles %}
<link rel="stylesheet" href="{% static 'css/normalize.css' %}" />
{%loadstaticfromstaticfiles%}
还请注意,对于
标记,您需要对url使用href
属性,而不是src
在setting.py文件中添加以下内容
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
在你的应用程序中创建一个名为static的文件夹,并在模板文件中添加这个{%load static%}为什么你的模板会在static文件夹中?@DanielRoseman有那么糟糕吗?我看的一个教程就是这样做的,对他们来说哪里会是更好的地方?我几乎不知道如何回应。这些是完全不同的事情。我非常怀疑任何一个像样的教程都能做到这一点。无论如何,你没有提供足够的信息来回答这个问题。你在做开发吗?调试是正确的还是错误的?为什么您的STATIC\u ROOT
是空的?您是否运行过manage.py
?模板目录的值是多少?为什么要使用相对路径来指向模板中的CSS文件?@Groovietunes我的意思是绝对没有冒犯的意思,但是丹尼尔,我对你评论的第一句话笑得很厉害;这让我很高兴。@Groovietunes您肯定不想将Django模板放在静态目录中,除非它们是您正在利用的模板,例如下划线。非常感谢!该问题出现在HTML文档load static中,href修复了该问题。我想最好是一字不差地遵循文档!
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')