为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

婷婷同学_ 2022-06-09 11:11:24
情况我有一个 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 imagesSTATICFILES_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-dSTATIC_ROOT = os.path.join(BASE_DIR, 'static')#this_is_what_U_see_in_URL_bar_for_static_filesSTATIC_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 %}
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

你应该改变:

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

进入

<script src="{% static 'public/js/jquery/jquery.min.js' %}"></script>
...


查看完整回答
反对 回复 2022-06-09
?
茅侃侃

TA贡献1842条经验 获得超21个赞

查看它试图获取的路径:


/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 %}在模板中的任何位置使用,这是底线。


查看完整回答
反对 回复 2022-06-09
  • 2 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信