Nginx+FastCGI+Django请求静态(css,js,img等)

之前写了一个简易的运维管理系统,奈何一直都是用的开发者模式启动django,现想用ngxin代理,参照<<The Django Book>>,上面提供了Apache+mod_python(mod_wsgi|FastCGI)等方式,而我选择了Nginx+FastCGI的方式(机器上本来就有nginx了,并且我平时用nginx也比较多).

Django通过FastCGI启动的方式有如下几种:

在tcp端口上运行一个线程服务器:

./manage.py runfcgi method=threaded host=127.0.0.1 port=3033

在Unix socket 上运行prefork 服务器:

./manage.py runfcgi method=prefork socket=/home/user/mysite.sock pidfile=django.pid

启动,但不作为后台进程(在调试时比较方便):

./manage.py runfcgi daemonize=false socket=/tmp/mysite.sock

Django的目录结构如下:

[[email protected]_56_231_centos tencent]# tree tencent/
tencent/
├── db.sqlite3
├── log
│   └── all.log
├── manage.py
├── scripts
│   ├── changetime.sh
│   ├── test.sh
│   └── testtime.sh
├── static
│   ├── css
│   │   ├── bootstrap.css
....
│   │   └── bootstrap-responsive.min.css
│   ├── img
│   │   ├── glyphicons-halflings.png
│   │   └── glyphicons-halflings-white.png
│   ├── jquery
│   │   └── jquery-1.8.3.min.js
│   └── js
│       ├── bootstrap-datetimepicker.js
....
├── tencent
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── tencentapp
    ├── admin.py
    ├── __init__.py
    ├── models.py
    ├── template
    │   ├── bb.html
....
    │   └── ee.html
    ├── tests.py
    └── views.py

static是放置静态文件的目录

Nginx的配置文件如下:

server {

listen 9007;

server_name default;

index index.html index.htm;

location / {

fastcgi_pass 127.0.0.1:9008; #这是是Django启动时的套接字地址,启动方式可参照上文

fastcgi_param PATH_INFO $fastcgi_script_name;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

fastcgi_pass_header Authorization;

fastcgi_intercept_errors off;

}

location ~ ^/static/ {

root /data/python/tencent/tencent; #这是Django静态文件的目录

expires 24h;

}

}

时间: 2024-12-15 07:00:25

Nginx+FastCGI+Django请求静态(css,js,img等)的相关文章

Django使用本地css/js文件

在网上看了很多说Django如何使用本地css/js的文章, 但都不能用 今天终于找到一个可以用的, 记录下 在manager.py同层级下创建static文件夹, 里面放上css , js, image等文件或者文件夹 我的文件夹层级 然后很简单,只需在settings.py中进行设置就行, 在末尾添加以下代码 STATIC_URL = '/static/' HERE = os.path.dirname(os.path.abspath(__file__)) HERE = os.path.joi

IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求

今天将开发好的ASP.NET站点部署到客户的服务器上后,发现了一个非常头疼的问题,那么就是IIS7的应用程序池是集成模式的话,ASP.NET项目中自定义的HttpModule会处理静态文件(.html .css .js .jpeg等)请求,而这不是我预期的效果,因为我只想让托管文件(aspx, ascx 及 MVC等)的请求被自定义HttpModule处理,但是我发现在IIS7的集成模式下所有请求都会进入HttpModule被处理. 后来我尝试将IIS7站点下的应用程序池改为了经典模式,这样的话

Django之CSS,JS静态文件的配置

一. 专门创建一个目录放静态文件,即CSS,JS等. 1)先把jquery.min拿过来. 2)新建一个CSS文件放入样式 3)在login.html中引入.css文件 在login.html中引入.JS文件 4) 运行,检验效果,发现出错了. 报错找不到路径,请求的地址如下. 5) 所以静态文件应该有专门针对静态文件的处理方式.在setting里面加一句话,注意大小写和逗号, 表示我已经配置好我的静态目录了,这样就会去static文件夹下找静态文件的配置了.重启服务器端,运行,测试效果良好,已

nginx访问css js 图片等静态资源,报404或无法定向访问到

配置完nginx,把php的项目放上去后,发现css,js和图片全部访问不到,一直重定向到根目录执行index.php,郁闷的在网上查了半天,原来不同后缀名的文件访问时都要在nginx.conf中声明规则,如下, location ~* .(jpg|gif|png|js|css)$ { root E:\Project\PHP\mobao; if (-f $request_filename) { expires max; break; } } 在location ~ \.php$前面加上上面这段规

使用Tengine concat模块合并多个CSS,JS 请求

用淘宝改良的Nginx(Tengine)提供web服务 今天在本博客上顺利把Nginx换成了Tengine:并启用了动态加载模块 mod_concat,对本博客使用的知更鸟主题各个页面head模板中大量调用的多个CSS,JSS请求进行了合并,即客户端浏览器只需通过一次http请求,即可从服务器返回所需要的多个CSS,JS文件:下面是配置步骤: 编译安装Tengine 1,停止web服务,备份原来的Nginx目录(我是lnmp一键安装的,所以直接备份/usr/local/nginx目录即可) se

Nginx与Tomcat实现请求动态数据与请求静态资源的分离

上篇博客说明了Nginx在应用架构中的作用,以及负载均衡的思路.这篇实践一下其中的访问静态资源与访问动态资源的操作. 一.认识访问静态资源与访问动态资源的区别 静态资源:指存储在硬盘内的数据,固定的数据,不需要计算的数据. 如:图片.字体.js文件.css文件等等.在用户访问静态资源时,服务器会直接将这些资源返回到用户的计算机内. 动态资源:指需要服务器根据用户的操作所返回的数据,以及存储在数据库的数据,经过一系列逻辑计算后返回的数据. 如:请求明天的天气信息数据.请求查看账户余额. 二.请求动

Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题

问题描述 在用springmvc开发应用程序的时候.对于像我一样的初学者,而且还是自学的人,有一个很头疼的问题.那就是数据都已经查出来了,但是页面的样式仍然十分简陋,加载不了css.js,图片等资源文件,如果你输入某个css的文件在浏览器中得到的直接是404错误(例如http://localhost:8080/iMax_view/css/classify.css),表示路径肯定没有错,这是因为你在web.xml中配置的springservlet ]<!-- springmvc前端控制器,rest

Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结

上一篇 | 下一篇 Spring MVC程序中得到静态资源文件css,js,图片 文件的路径 用 Spring MVC 开发应用程序,对于初学者有一个很头疼的问题,那就是程序数据都已经查询出来了,但界面样式仍然十分丑陋,加载不了 css,js,图片等资源文件.当你在浏览器上直接输入某个css文件的路径时,直接得到404错误,而路径肯定没有错,其原因就在于在web.xml 中配置了类似如下的 spring servlet: 程序代码 <servlet>    <servlet-name&g

Spring MVC程序中得到静态资源文件css,js,图片

转载自:http://www.blogjava.net/fiele/archive/2014/08/24/417283.html 用 Spring MVC 开发应用程序,对于初学者有一个很头疼的问题,那就是程序数据都已经查询出来了,但界面样式仍然十分丑陋,加载不了 css,js,图片等资源文件.当你在浏览器上直接输入某个css文件的路径时,直接得到404错误,而路径肯定没有错,其原因就在于在web.xml 中配置了类似如下的 spring servlet: 程序代码 <servlet>