Dajango访问静态文件(css,js,img)学习总结

tech2022-08-05  166

Dajango访问静态文件(css,js,img)学习总结

在本地调试模式下,即DEBUG=True时

1. 默认的配置 STATIC_URL="/static/"

举例: 1. setting.py 文件

# 该变量的值可更改,只影响访问资源的url,如STATIC_URL=”anyone“ # 这是默认的 也是必须的存在变量 STATIC_URL = '/static/'

2. 目录结构: 只能在应用下创建static文件夹直接存放文件

3. 页面访资源:

# 这里的static对应的配置STATIC_URL的值 地址访问图片:https://127.0.0.1:8000/static/add1png 引入外部样式:<link type="text/css" rel="stylesheet" href="/static/login_frame.css" /> 图片访问: <img src="/static/add2.png"/>

4.总结:

表示访问静态文件的url是: https://127.0.0.1/static/add.png (url中的static对应STATIC_URL的值)只能在应用(app)目录下创建名为static的文件夹,直接存放静态文件,才可正常访问到文件STATIC_URL的值可自定义,只会影响对应的url,但是实际存放静态文件的目录必须满满足 总结2STATIC_URL的值中的结尾的 / 不可省

2. 默认配置的基础上,配置STATICFILES_DIR,自定义静态资源文件夹

举例 1. 在项目根目录或者应用类创建自定义的文件夹存放静态文件

2. 在setting中设置STATICFILES_DIR的值

方式一,,列表值直接是 路径字符串

# BASE_DIR表示项目的根目录,setting文件中已初始化 # 变量值可自定义 STATIC_URL = '/static/' # 在列表元素 为 路径字符串 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static/css"), os.path.join(BASE_DIR, "static/js")), os.path.join(BASE_DIR, "static/img") ] # 相当于将列表中所有路径下的文件,直接映射到/static下 # 此时的访问路径是 /static/文件名, # 如html访问图片 <img src="/static/add1.png">

方式二,列表元素直元组(“二级路径”,”路径字符串“)

# STATIC_URL = '/static/' # 列表元素 为 (”二级urll“,”路劲字符“)构成列表或元组 STATICFILES_DIRS = [ ("css", os.path.join(BASE_DIR, "static/css")), ("js", os.path.join(BASE_DIR, "static/js")), ("img", os.path.join(BASE_DIR, "static/img")), ] # 相当于分别映射, # 此时访问css /static/css/文件名 # 此时访问js /static/css/文件名 # 此时访问img /static/css/文件名 # 如引入外部style文件: # <link type="text/css" rel="stylesheet" href="/static/css/login_frame.css" />

效果图 and 代码

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>学习笔记主页</title> <script type="text/javascript" src="/static/js/jquery-3.5.1.min.js"></script> <link type="text/css" rel="stylesheet" href="/static/css/login_frame.css" /> </head> <body style="margin: 0;"> <div class="login_div"> <div id="operate_div">dasda</div> <div class="input_div"> <input type="text" name="username" id="username" class="username" placeholder="账号" /> <label for="username" id="mess_username"></label> </div> <div class="input_div"> <input type="password" name="password" id="password" class="password" placeholder="密码"/> <label for="password" id="mess_password"></label> </div> <div class="button_div"> <input class="button" type="button" value="登录" onclick="login()"/> </div> <div class="fun_div"> <a href="findpage">忘记密码</a> <div class="center_div">|</div> <a href="registpage">用户注册</a> </div> </div> </body> </html> <script> /*页面加载完成后*/ function check_username(){ let username = $("#username").val() let mess_user = $("#mess_username") let state = 0 if(!username.match("^[1-9][0-9]{7}")){ mess_user.text("账号是长度8的数字串") } else{ mess_user.text("") state =1 } return state /* else { let json = {"username": username} $.ajax({ type:"post", async:false, url:"checkAccount", data:json, dataType:"json", success:function (data) { if (data.mess == "notexist"){ mess_user.text("账号可用") state = 1 } else{ mess_user.text("账号已存在哦") } }, error:function () { alert("请求失败") } }) } */ return state } function check_password() { let password = $("#password").val() let mess_pass = $("#mess_password") let state = 0 if (!password.match("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{6,12}$")){ mess_pass.text("密码是6-12位,包含大小写字母,数字的字符串") } else { mess_pass.text("") state = 1 } return state } $(function () { let input_user = $("#username") let input_pass = $("#password") input_user.blur(function (){check_username()}) input_pass.blur(function (){check_password()}) }) function login() { if (check_username() + check_password() == 2) { $.ajax() } } </script>
最新回复(0)