Django 3.0 辅助应用程序 - 未找到:静态文件

情况

  • 我有一个 django 3.0 应用程序,我已经在其中构建了一些正在运行的应用程序。

  • 我试图创建一个用于注册、登录的身份验证应用程序。

  • 注册和登录的后端工作。

  • 但是像.js、.css、图像这样的静态文件没有出现。

  • 我还有一个 base.html 文件,其中包含扩展至此 signup.html 的所有样式表导入和 javascript 导入

  • 不知何故,如果我只用 base.html 文件中的扩展名填充 signup.html 文件,它仍然会给我同样的错误

文件夹结构

  • mainapp-项目

    • mainapp(这是我保存扩展至的 base.html 文件的地方)

    • secondapp(base.html 文件在这里扩展)

settings.py

#actual folder name where we save our images

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'mainprojectfolder/static/')]


# Removed based on: https://stackoverflow.com/questions/60354519/django-base-html-extended-to-homepage-html-static-images-appear-but-home-css-d

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


#this_is_what_U_see_in_URL_bar_for_static_files

STATIC_URL = '/static/'

base.html


<!doctype html>

<html>

{% load static %}


<!-- SYLES & BASICS-->

<head>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}"/>

  <title>  </title>

  <link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/carousel/">

  <link rel="stylesheet" href="static/css/bootstrap/bootstrap.min.css"> <!--  -->

  <link href="static/css/style.min.css" rel="stylesheet">

</head>


<body>

<header>

...

</header>


{% block content %}

{% endblock %}



  <script src="static/public/js/jquery/jquery.min.js"></script>

  <script src="static/public/js/popper/popper.min.js"></script>

  <script src="static/public/js/bootstrap/bootstrap.min.js"></script>


</body>

</html>

登录.html


{% extends 'ch/templates/base_emp.html' %}

{% load static %}


{% block content %}


<!-- MY COTENT, no imports only file requests-->


{% endblock %}


婷婷同学_
浏览 80回答 2
2回答

回首忆惘然

你应该改变:<script&nbsp;src="static/public/js/jquery/jquery.min.js"></script> ...进入<script&nbsp;src="{%&nbsp;static&nbsp;'public/js/jquery/jquery.min.js'&nbsp;%}"></script> ...

茅侃侃

查看它试图获取的路径:/accounts/static/public/js/jquery/jquery.min.js这不是您想要的,因为在 urls.py 中以开头的任何内容/accounts都指向您的身份验证视图。问题是您正在为静态文件使用相对路径:static/public/js不以 a 开头,/因此它相对于当前页面。如果页面是/account/login,则路径是相对于/account/。所以基本上你需要有/static/public/js/.... 它开始于/所以它是一个绝对路径。但是定义的全部原因STATIC_URL是您不必在模板中记住它。为此,有static模板标签:{% load static %}<!-- scripts --><script src="{% static 'public/js/...' %}"></script><!-- css files --><link rel="stylesheet" href="{% static 'css/bootstrap/bootstrap.min.css' %}"><!-- images --><img src="{% static 'images/small.png' %}">引用静态文件时,请始终{% static %}在模板中的任何位置使用,这是底线。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript