使用Django来处理对于静态文件的请求

简介:

引言

本方法适用于linux+python2.7+django1.2,使用django自带的web服务。
同样也适用于sina app engine。
 

1、准备工作

准备css文件,准备js文件,准备image文件。
在网站根目录新建目录【medias】,在【medias】目录新建目录【styles】,用来存放css文件。
 

2、配置对于静态文件访问的路径

2.1、在settings.py文件中添加静态文件的目录

假设mysite是网站的根目录,medias是刚才我们新建的目录
 

 

 
  1. STATICFILES_DIRS = ( 
  2.  
  3. # Put strings here, like "/home/html/static" or "C:/www/django/static". 
  4.  
  5. # Always use forward slashes, even on Windows. 
  6.  
  7. # Don't forget to use absolute paths, not relative paths. 
  8.  
  9. 'mysite/medias' 
  10.  

2.2、在urls.py文件中添加如下路由规则

 

 
  1. urlpatterns=patterns('', 
  2. (r'^site_medias/(?P<path>.*)$','django.views.static.serve', {'document_root':mysite.settings.STATICFILES_DIRS, 'show_indexes': True}), 
  3.  
将对于site_medias目录及其子目录的文件的请求,映射到settings.py文件设置的STATICFILES_DIRS中指定的路径。并且使用了show_indexes参数,参数设置为True之后,表明可以通过浏览器,浏览medias目录的资源,包括浏览文件夹及其文件。浏览地址是 http://localhost:8080/site_medias/,假设服务使用端口是8080,在设置了上面的选项之后,应该可以通过该地址浏览文件夹及文件。
 

3、使用静态文件

3.1、在template文件中引用css文件

在base.html文件的head标记中添加下面的css引用。
 

 

 
  1. <link href="/site_medias/styles/site.css" rel="stylesheet" type="text/css"> 

3.2、在普通html文件中引用css文件

也是直接在html文件的head标记中添加下面的内容。
 

 

 
  1. <link href="/site_medias/styles/site.css" rel="stylesheet" type="text/css"> 
 

总结

完成上面的工作之后,css就应该开始起作用了。对于图片和js的引用也是类似的做法。
在django的官网有两个链接讲到了相关的内容,详细情况大家可以点击查看。
上面这个链接的主题是:How to serve static files,也就是如何使用静态文件(包括css,js脚本,图片等等)。里面讲到了,可以使用上面的办法使用静态文件,但是django主要是用来处理动态文件的,上面的办法不高效,并且不安全,所以是不推荐的。在开发环境用一下还可以,但是生产环境,推荐使用专业的web服务来提供静态文件的处理。专业的web服务包括:appache、lighttpd、cherokee等等。结合这些专业web服务的用户,在文章中也有链接。
上面的链接就是将如何使用django来处理静态文件,一些处理的细节,包括配置啊、引用啊什么呢的。

 




本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/749252,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
142 1
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
470 7
|
存储 前端开发 Serverless
中后台前端开发问题之Django项目中接收和处理用户的抽奖请求如何解决
中后台前端开发问题之Django项目中接收和处理用户的抽奖请求如何解决
75 0
|
前端开发 Python
Django框架中Ajax GET与POST请求的实战应用
Django框架中Ajax GET与POST请求的实战应用
|
JSON 缓存 前端开发
Django视图层探索:GET/POST请求处理、参数传递与响应方式详解
Django视图层探索:GET/POST请求处理、参数传递与响应方式详解
|
前端开发 JavaScript 安全
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
跨域问题与Django解决方案:深入解析跨域原理、请求处理与CSRF防护
|
前端开发 Python
(三)整合 React 项目静态文件到 Django 项目
(三)整合 React 项目静态文件到 Django 项目
212 9
|
JSON 前端开发 JavaScript
Django——Ajax请求
Django——Ajax请求
|
JSON 前端开发 JavaScript
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
|
JavaScript Python
django和vue 请求403 FORBIDDEN怎么办
在请求头里,添加X-CSRFToken, 取自浏览器里的cookie 再附上取cookie的源码
186 0