我使用Django manage.py runserver
来开发我的应用程序(很明显),但它需要10秒才能完全加载页面,因为开发服务器的服务非常非常慢静态媒体。使Django开发服务器在服务静态媒体时更快
有什么办法可以加快它或某种解决方法?我正在使用Windows 7.
我使用Django manage.py runserver
来开发我的应用程序(很明显),但它需要10秒才能完全加载页面,因为开发服务器的服务非常非常慢静态媒体。使Django开发服务器在服务静态媒体时更快
有什么办法可以加快它或某种解决方法?我正在使用Windows 7.
开发服务器是简单的不安全的单线程应用程序,所以你不能做太多。
你可以尝试的一个诀窍是将/ site_media重定向到第二个开发服务器,但这很丑陋,可能无济于事。因此,您可以尝试将多个资产捆绑/压缩到一个css/js中(例如使用YUI Compressor)。
而且无论如何,你应该有独立的静态媒体服务器,可以一次提供多种资源。
安装Firefox(如果您尚未安装),并安装Firebug Add-On。重新启动您的浏览器。在右下角点击“bug”图标,并确保在浏览器底部打开的Firebug面板的“网络”选项卡(它是下拉菜单)中,网络监视器处于活动状态。
现在打开Firebug的网络选项卡,打开您观察到缓慢加载的Django生成的页面。看看时间线吧。您会注意到每个条的彩色碎片显示每个请求的“加载”总时间的原因。例如,Violet意味着实际上浏览器正在等待服务器生成响应。灰色意味着它正在接收内容。等等。将鼠标悬停在条上将显示一个颜色图例。
使用Firebug的网络监视器,您应该能够确定您的浏览器和/或服务器花费10秒钟的精确程度。
资源的实际下载不需要任何时间,但开发服务器显然可以一次只处理一个请求,引起缓慢(?)。 – Veeti
“一次请求一次” - 这是因为它是单线程的,所以所有请求都在队列中序列化。 –
运行lighttpd以提供静态内容,并使用MEDIA_URL将页面指向服务器静态内容的lighttpd服务器。
使用NGINX提供静态文件和媒体文件时,可快速轻松实现资源。这是怎么回事。但是,您需要根据您的使用情况和系统调整一些路径。但我认为,这将让你开始:
1)下载NGINX为你的系统,你的情况的Windows: http://nginx.org/
2)解压缩zip文件。以下是您的NGINX配置文件的外观。这个文件里面住nginx/conf/
:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# root path to your project
# use "..." if spaces are in the path
# you may add a drive letter if required, e.g. root c:/foo
# use/instead of \. It's simpler and works
root /example/path/django/project/;
server {
# any free port number will do; Django dev server usually runs on port 80
listen 8000 default;
server_name localhost; # or 127.0.0.1
}
}
3)开始NGINX通过调用nginx.exe
- 不需要的选项。
4)调整你的Djnago项目settings.py
文件:
if DEBUG:
STATIC_URL = 'http://localhost:8000/static/'
# against Django recommendation, I often still use the static
# directory for user uploads; old-style Django ;-)
MEDIA_URL = 'http://localhost:8000/static/uploads/'
现在,在Django的静态URL应该是这个样子: http://localhost:8000/static/js/base.js
...5)通过呼叫停止服务器:
taskkill /f /IM nginx.exe
好吧,就是这样。我很快输入了这个信息,所以如果有什么不清楚或者不适合你,请告诉我。我可以相应地改进这个答案。
你的页面如何变大?你提交什么尺寸的文件?你的静态媒体在哪里?你通过'http://127.0.0.1:8000'在一台计算机上运行,对吧?如果是这样,它应该运行得非常快。你是否通过Django视图函数提供静态内容?如果是这样,那是一个错误。 –
一个页面的总重量约为53千字节,不会再有 - 但包含许多样式表,图像和JavaScript文件。我正在使用Django附带的静态媒体视图进行开发。 – Veeti