博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django处理静态文件
阅读量:5333 次
发布时间:2019-06-15

本文共 1535 字,大约阅读时间需要 5 分钟。

转载自 http://www.cnblogs.com/wswang/p/5519101.html

静态文件指的是js css 还有图片这些,配置方法如下

1. 在设置文件(settings.py)中,installed_apps中添加 django.contrib.staticfiles

    然后设置static_url  

1
STATIC_URL 
= 
'/static/'

2. 在模板中的使用方式如下  

1
2
{
% 
load staticfiles 
%
}
<img src
=
"{% static "
my_app
/
myexample.jpg
" %}" 
alt
=
"My image"
/
>

这种方式提供的是一种相对路径,当你将环境切换到CDN的时候会方便很多

当然也可以用简单一些的方法---直接提供一个静态文件的url,不过在CDN中就要修改才可以使用了

1
/
static
/
my_app
/
myexample.jpg

3. 把你的文件都放在一个文件夹下,比如

1
my_app
/
static
/
my_app
/
myimage.jpg

  

注:当debug设置True的时候上面的方法可以,但是False的时候会提示not found的错误 

 

当debug设置为Fales的时候,设置方法如下(增加静态文件url,使用 来寻找静态文件):

1
2
3
4
5
6
from 
django.conf 
import 
settings
from 
django.conf.urls.static 
import 
static
 
urlpatterns 
= 
[
    
# ... the rest of your URLconf goes here ...
+ 
static(settings.STATIC_URL, document_root
=
settings.STATIC_ROOT)

注:也不推荐实际环境中用  

 

当你有多个静态文件目录的时候可以使用下面的方式,设置STATICFILES_DIRS: 

1
2
3
4
STATICFILES_DIRS 
= 
[
    
os.path.join(BASE_DIR, 
"static"
),
    
'/var/www/static/'
,
]

 

注:django寻找静态文件默认找到地一个就会返回,不再进行后续查找,所以要注意安排顺序及目录 

 

 部署的步骤:

1. 设置STATIC_ROOT:

1
STATIC_ROOT 
= 
"/var/www/example.com/static/"

2. 执行collectstatic命令:

1
$ python manage.py collectstatic

这会把静态文件拷贝到你设置的static_root目录下(这样可以更方便的和nignx集成,权限管理也更方便)

  

参考链接见(django文档最详细):

http://blog.csdn.net/WaitForFree/article/details/39815507

http://blog.sina.com.cn/s/blog_6c663fa50101gope.html

https://docs.djangoproject.com/en/1.9/howto/static-files/

https://docs.djangoproject.com/en/1.9/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve      

转载于:https://www.cnblogs.com/robinunix/p/7084537.html

你可能感兴趣的文章
Mac 中文输入法失效(不显示选词框)解决办法
查看>>
基于 Laravel 开发博客应用系列 —— 设置 Linux/Mac 本地开发环境
查看>>
C语言基础-第五章
查看>>
CSS的一些命名
查看>>
[LeetCode]Valid Sudoku
查看>>
[leetcode]110BalancedBinaryTree平衡二叉树
查看>>
SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别
查看>>
学计算机的你伤不起啊
查看>>
Django+MongoDB批量插入数据
查看>>
GPS坐标换算为百度坐标
查看>>
Linux命令整理-Ubuntu
查看>>
liunx 安装和解压命令
查看>>
【问题解决】线程间操作无效:从不是创建控件“textBox1”的线程访问它
查看>>
Ralink RT3290无线网卡驱动安装 (linux)
查看>>
leetcode38. 报数
查看>>
ava集合框架
查看>>
把sublime text2配置的更好用,用到一点写一点
查看>>
构建之法阅读笔记02
查看>>
nodejs,python,sublime和Eclipse的包管理器
查看>>
完善自己的学习方法
查看>>