利用Pycharm学习Django框架的时候,我是先在templates里写的HTML,直接运行HTML正常后,再利用框架关联url,结果打开发现无法正确加载图片。
就很离谱,明明HTML正确,但是当Django跑的时候图片就是死活出不来:
在经过一连串的百度以及自己实践之后,发现Django应该是有一套自己的加载静态图片的方法:
步骤为一下几点:
-
如下图所示,先创建一个文件叫
static
,与
templates
同级,然后在static下新建一个images用来存放图片。
-
打开
setting.py
(这个你一定不陌生,位置在上图中也有),添加如下内容(如图所示)
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
3. 修改对应的HTML代码,这里也是我最苦恼的地方,Django的HTML调用静态图片视乎有独自的写法,分为两步:
a. 在开头加上 {% load static %}
b. HTML中调用图片写法为background="{% static ‘images/12.jpg’ %}"(这里我写的是背景图片,主要是大括号里面的内容)
还不是很清楚的,可以看下图:
然后运行界面如下,图片显示正常:
最后抱怨一下,我也是刚刚学这个,有没有大佬知道如果我用了Django调用图片的写法,那么直接运行HTML就不行,如果通过调用图片路径的方法写HTML,那么Django又会运行出错,好像两者只能对一个,如果有大佬知道折中的其他方法,方便留言一下一起学习,最后能给我个赞不。
在Django应用中,静态文件(包括JavaScript、CSS和图像文件)的加载通常会遇到问题。如果您正在寻找 Django 无法加载静态文件(js,css,image)的解决方式,本文将为您提供详细内容。如果您的问题依然没有得到解决,请留意错误提示信息,寻找更加详细的解决方案。在Django应用中,有一些缓存机制会导致静态文件无法加载。如果您的Django应用的配置不正确,或者您的静态文件的路径不正确,就会出现无法加载静态文件的问题。然而,有时候Django将无法加载这些静态文件,造成显示异常。
Django 1.x static 不能加载问题可以参照作以下修改:
STATIC_ROOT = os.path.join(BASE_DIR, 'static').replace('\\','/')
STATICFILES_DIRS =(
(css, os.path.join(STATIC_ROOT,'css').replace('\\','/')),
(js, os.path.join(STATIC_ROOT,'js').replace('\\','/')),
STATIC_URL = '/static/'
TEMPLATES = [
'BACKEND'
接着前面Django入门使用示例
今天我们来看看Django是如何加载静态html的?
我们首先来看一看什么是静态HTML,什么是动态的HTML?二者有什么区别?
静态HTML指的是使用单纯的HTML或者结合CSS制作的包括图片、文字等的只供用户浏览但不包含任何脚本、不含有任何交互功能的网页!
动态的HTML指的是网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如JAVASCRIPT,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能
接下来,了解下加载静态HTML是如何实现的。
1.第一步,在manage.py同级下新建html目录,里面新建一个i
1.首先是html页面的form表单的三大属性,action是提交到哪,method是提交方式,enctype只要有图片上传就要加这个属性
Django框架自带csrf_token ,所以需要在前端页面也生成csrf_token字符串,来验证真实客户
<form action="/pic_upload/" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="file">
<input type="submit" value="提
django渲染模板时,遇到发现jss/css/图片无法导入的问题,各种查但是无法找到正确的解决。
django版本:1.11.8/1.11.3
查了下对应版本的官方介绍文档:https://docs.djangoproject.com/en/1.11/howto/static-files/ 根据此文档,排查了三处地方:
1、在settings中是否定义了STATICFIFLES_DIR,
这是pycharm在创建虚拟环境时候出错了,可以尝试一下解决方案方案一(手动创建虚拟环境)手动创建虚拟环境有很多可选方案,这里推荐使用virtualenv,比较简单方便。首先安装virtualenv,需要安装如下两个库pip install virtualenvpip install virtualenvwrapper-win安装好之后使用mkvirtualenv创建一个django的虚拟环境,命...
在settings.py最后加上如下代码:
STATIC_URL = ‘/static/’
STATIC_ROOT = os.path.join(os.path.dirname(file),‘static’)
STATICFILES_DIRS = (
(‘css’,os.path.join(STATIC_ROOT,‘css’).replace(’\’,’/’) ),
(‘js’,os.path.j...
我正在创建一个基于Django的Web应用程序,它是服务器端呈现的。但是现在有一些页面我想使用来自Feed的javascript重新渲染。我更喜欢使用DRY方法并重新使用我现有的Django模板,将它们包含在标签内的页面上。然后我可以使用我选择的模板库(有许多支持Django模板)然而,我坚持最简单的事情,包括模板而不解析!以下是我尝试过的无效方法预期输出John DoeSally TaylorD...
STATIC_URL = ‘/static/’
STATIC_ROOT = os.path.join(os.path.dirname(file),’static’)
设置图片等静态文件的路径
STATICFILES
nginx部署Django项目时css文件中的背景图片路径找不到
有关nginx静态文件路径配置参考:
https://editor.csdn.net/md/?articleId=119815675
例如我的静态文件结构为:
- collect_static # 生产部署时通过 python3 manage.py collectstatic 命令集成所有静态文件的目录,与STATIC_ROOT路径相同
- css
- images
- a.jpg
- comment