javascript - Django 找不到静态文件
问题描述
我正在尝试用 Django 建立一个论坛。我想使用带有particle.js 的动画背景。当我写这段代码时:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Particles login</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="particles-js">
</div>
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
<script>
particlesJS.load('particles-js', 'particles.json', function(){
console.log('particles.json loaded...');
});
</script>
</body>
</html>
并在实时服务器上运行它,我得到了我想要的。但是,我调整了 Django 的代码:
<!DOCTYPE html>
<html lang=en>
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="style.css">
</head>
<body>
{% include 'snippets/base_css.html' %}
{% include 'snippets/header.html' %}
<!-- Body -->
<style type="text/css">
.main{
min-height: 100vh;
height: 100%;
}
#particles-js{
height: 100%;
color:turquoise;
}
</style>
<div class="main">
<div id="particles-js">
</div>
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
<script>
particlesJS.load('particles-js', 'particles.json', function(){
console.log('particles.json loaded...');
});
</script>
{% block content %}
{% endblock content %}
</div>
</div>
<!-- End Body -->
{% include 'snippets/footer.html' %}
</body>
</html>
当我用 Django 运行它时。即使这些文件的位置完全相同,我也会收到以下错误:
Not Found: /style.css
[28/May/2021 00:21:59] "GET /style.css HTTP/1.1" 404 2263
Not Found: /particles.json
[28/May/2021 00:21:59] "GET /particles.json HTTP/1.1" 404 2278
有人可以请教我这个问题吗?我应该在 settings.py 中的静态文件中添加一些东西吗?
解决方案
首先,在settings.py 中,添加:
STATICFILES_DIRS = [
"<PATH_TO_YOUR_STATIC_DIR>"
]
然后在你的 HTML 文件的开头,写{% load static %}
之后,无论您想在何处引用静态文件,都可以使用以下语法:{% static 'PATH_TO_STATIC_FILE' %}
例如,
<link rel="stylesheet" href="{% static 'css/style.css' %}" />
如果您将 style.css 文件保存在“css”目录中,请执行此操作。如果没有,那么直接写{% static 'style.css' %}
推荐阅读
- android - 在相同的片段类型之间滑动
- java - java.lang.InstantiationException 尝试实例化子类时出错
- django - Django:将一个应用程序中的表单添加到另一个应用程序模板中(详细视图)
- c# - ASP.Net Core Anchor 路由到控制器中的操作
- android - 禁用 Android 'Instant' 应用程序模块以获得风味
- r - 具有组条件的滞后 R 数据表
- node.js - Node/Express:从 URL 中获取 req.query 值并将其转换为 UNIX 时间戳
- dart - Flutter 无法识别有效的导入
- php - 在 Behat/Mink FeatureContext 中使用 Laravel Eloquent
- python - 将列表列表转换为 numpy 数组会产生不同的结果