【问题标题】:Django unable to find scripts in static folderDjango 无法在静态文件夹中找到脚本
【发布时间】:2021-10-15 09:27:18
【问题描述】:

这似乎是一个重复的问题,但我不知道发生了什么,但我已经通过 stackoverflow 并尝试了所有解决方案,但找不到我需要的答案。在这里,Django 找到了 style.css,但找不到与 style.css 位于同一文件夹中的 App.js 和 script.js。我似乎无法弄清楚问题所在,我已经浪费了大约 2 个小时试图解决这个问题。 更新:我尝试对路径进行硬编码,但仍然说当我执行 py manage.py findstatic 时它没有找到它。
相关 HTML

{% load static %}
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
  <meta charset="UTF-8">
  <title>Reyanna</title>
  <link rel="icon" href="https://img.icons8.com/nolan/96/bot.png" type="image/icon type">
  <link href="https://fonts.googleapis.com/css?family=Montserrat:400,500,600,700,800,900" rel="stylesheet">
  <link rel="stylesheet" href="{% static 'style.css' %}">
  <link rel="script" href="{% static 'App.js' %}">
  <link rel="script" href="{% static 'script.js' %}">
</head>

Settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    BASE_DIR / "home/static",
]

文件夹

  • 首页(Django 应用)
  • |-> 静态
    • |-> App.js
    • |-> script.js
    • |-> style.css
  • |-> 模板
    • |-> index.html

【问题讨论】:

  • 你需要对外部 JS 文件使用
  • 是的,我也试过了,不行
  • 你试过浏览器的hard reload CMD + SHIFT + R 吗?强制重新加载静态文件
  • 仍然给我 404 错误

标签: javascript html django


【解决方案1】:

更新:我意识到模板文件夹在 App 目录中

如果您的templates 文件夹在您的应用目录中,则:

  • 删除此STATICFILES_DIRS = [BASE_DIR / "home/static",]
  • STATIC_URL = '/static/' 保持原样
  • TEMPLATES >> DIRS 路径留空。
  • 最后,在您的 base.html 或 index.html 中,在结束 body tag 之前添加 &lt;scripts&gt;----&lt;/scripts&gt; 标签,如下所示
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
  • 清除浏览器历史记录,包括所有 cookie 并重新加载服务器。

如果不成功,我建议检查您的 html 中是否缺少结束标签或标签名称拼写错误。

但如果templates 文件夹在项目目录中,则执行以下操作:

  • settings.py>>TEMPLATES中,粘贴DIRS路径如下
'DIRS': [os.path.join(BASE_DIR, 'templates')]
  • 同样复制粘贴到 settings.py 底部
STATIC_URL = '/static/'

STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)

MEDIA_URL = '/media/'

MEDIA_ROOT = BASE_DIR
  • 最后,在您的 base.html 或 index.html 中,在结束 body tag 之前添加 &lt;scripts&gt;----&lt;/scripts&gt; 标签,如下所示
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
  • 清除浏览器历史记录,包括所有 cookie 并重新加载服务器。

如果不成功,我建议检查您的 html 中是否缺少结束标签或标签名称拼写错误。

有关两者的具体示例,请访问我的 GitHub 存储库并查看 settings.pybase.html

Templates folder inside App directory

Templates folder within project directory

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 2021-10-03
    • 1970-01-01
    • 2021-07-20
    • 2022-01-18
    • 2016-04-01
    • 2020-06-14
    • 1970-01-01
    相关资源
    最近更新 更多