解决django关于图片无法显示的问题
http://python.usyiyi.cn/django/index.html
http://m.blog.csdn.net/blog/qingyuanluofeng/44877399
http://www.idjango.com/content/15/
[原]手把手教你:解决django关于图片无法显示的问题
2015-4-4阅读177 评论1
先聊聊吧,作为一名程序猿,最近在一个人在帮企业写网站,用的架构呢,是:mongodb + python + django + html。之前搞网页,图片,css文件,js文件的路径是直接相对于***.html文件的,没想到等到真正要部署到 django的服务器上,所有的图片全部无法显示。css文件和js文件同样没有效果。
搞了两三天,终于解决了这个问题。
程序猿容易吗?不容易,总是被各种小问题被捆住了手脚,而没有把真正的精力用在:算法,并发,大数据 处理,内存优化这些问题上,总是被大多数人经历的小问题再次重复经历,这是一条老路。
我的想法就是:通过几分钟告诉你问题的原因和解决方法,让一个可能在你身上需要几天解决的问题,几分钟解决,把精力花在一个程序猿应该花的身上。如果觉得好,不妨不要吝啬您的一两句评论。
只有程序猿才能理解程序猿是多么的。。。
原因:django部署方式比较特别,采用静态文件路径:STATICFILES_DIRS的部署方式,之前你写的相对路径,绝对路径因为缺少静态文件路径而全部失效
解决方法:
步骤1:在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.join(STATIC_ROOT,'js').replace('\\','/') ),
('images',os.path.join(STATIC_ROOT,'images').replace('\\','/') ),
('upload',os.path.join(STATIC_ROOT,'upload').replace('\\','/') ),
)
步骤2:在urls.py文件的开头第一行和第二行分别加上以下内容:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import staticfiles
在urls.py文件最后加上以下内容:
#设置静态文件路径
urlpatterns += staticfiles_urlpatterns()
步骤3:设置静态文件的目录,很关键
整个文件的目录结构如下
project---project
---app
|
----static
|
-----templates
你的static和templates处于同级目录,然后将你的images,css,js文件夹放在static目录下面
测试:在你模板,也就是html文件中
<p><img src="/static/images/bg_information.png.png" width="980" height="180"></p>
改成自己的图片名称,注意图片前缀:/static/images/ 别写成 static/images/ 这样会无法显示
大功告成,嗨起来。
解决django关于图片无法显示的问题的更多相关文章
- 【Web】解决简书图片不显示问题“系统维护中,图片暂时无法加载”
简书不显示图片的解决方法 首次编辑于2019-6-6 最近几天在浏览简书上的文章时,发现图片显示不出来,提示"系统维护中,图片暂时无法加载". 猜测应该是简书由于某种原因暂时屏蔽了 ...
- 解决css引用图片不显示问题:background-image: url(../image/document.png);
.icon-document { background-image: url(../image/document.png); display:block; float: left; width: 25 ...
- 解决WPF导入图片不显示的问题
想在XAML中使用一张图片,得先将其添加到工程中, 方法是: 在项目中双击Resources.resx,选择图像,在添加资源的下拉菜单中选择添加现有文件,然后选择文件,添加图片进来后可以在Resour ...
- Django关于图片验证码显示笔记
.访问页面 /login/ - 内部需要创建一张图片,并且给用户返回 - 创建一个白板 Session存放验证码 .POST - 根据用户提交的数据与session里面比较 .登录界面 和 验证码 分 ...
- django中图片的上传和显示
上传图片实际上是 把图片存在服务器的硬盘中,将图片存储的路径存在数据库中. 1 首先要配置文件上传的路径: 1.1 建立静态文件目录 在项目根目录下 新建一个 static文件夹,下面再建立一个med ...
- ecshop验证码图片无法显示终极解决办法
ecshop验证码图片无法显示终极解决办法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2014-06-06 客户在安装好ecshop之后所有前台的证码不显示,后 ...
- 解决ueditor编辑器图片在线管理图片无法显示
使用ueditor,点击在线管理,服务器图片路径显示不正确,如下图所示 查看源码,如下: 发现图片src中中间多了一长串的项目跟路径,解决的办法是 把 jsp/controller.jsp 里面 ...
- python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题
问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...
- django上传并显示图片
环境 python 3.5 django 1.10.6 步骤 创建名为 testupload的项目 django-admin startproject testupload 在项目testupload ...
随机推荐
- 40条优化php代码的小实例
1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4; 2.echo的效率高于print,因为echo没有返回值,print返回一个整型; 3.在循环之前设置循环的最大次数,而非在在循环中; ...
- python学习第八天 -- 迭代
什么是迭代? 在python语言中,迭代的意思就是通过for循环遍历一个有序/无序的集合. 迭代是通过 for x in 集合 来完成的. 前面有提到python中有哪些集合,现在我们来梳理一下: ( ...
- HSV颜色识别demo
HSV(Hue, Saturation, Value)色彩空间是一种区别与RGB的表示形式.其模型可视为一个倒立的棱锥或圆锥. 其中H为色调,用角度度量,取值范围为0°-360°,从红色开始按逆时针方 ...
- TVS管
1.原理 TVS二极管在线路板上与被保护线路并联,当瞬时电压超过电路正常工作电压后,TVS二极管便产生雪崩,提供给瞬时电流一个超低电阻通路,其结果是瞬时电流透过二极管被引开,避开被保护元件,并且在电压 ...
- 转:shell 经典, shell 十三问
原文链接:http://blog.csdn.net/freexploit/article/details/626660 我在 CU 的日子并不长,有幸在 shell 版上与大家结缘.除了跟众前辈学 ...
- windows上安装winsshd
winsshd下载地址:http://www.bitvise.com/ssh-server-download 安装后默认配置即可使用:
- 黑马程序员_Java面向对象1_封装
3.面向对象_封装 3.1面向对象概念 3.1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程:强调的是功能行为(执行者) 面向对象:将功能封装进对象,强调具备了 ...
- jar包版本冲突,并且要保留两个版本都能使用
问题:在做项目时,遇到jar版本冲突的问题,并且老代码依赖不能用新jar包代替,要保证功能不变须要保证两个jar都能使用 思路:使用runtime 的exec 方式另启线程运行,然后返回结果 解决: ...
- shell惊鸿
显示当前用户uid
- Android 应用间的集成
第一次在手机上安装wsm tools时发现wsm只是个简单的集成框架,需要用其中的工具还需要单独安装,而安装一个工具以后发现图标没有显示,感觉很神奇,最近工作需要,也要做android应用间的集成,研 ...