css和JS文件下载时间太长

Dam*_*ian 5 php apache cakephp

我有一个在linux服务器上用cakephp编写的网站.我的css和js文件的下载时间非常慢,我遇到了问题.例如,在加载我的主页时,这就是chrome中的网络选项卡:

在此输入图像描述

如您所见,我的一个css文件花了59秒下载!重要的是要注意它并不总是相同的css文件.有时它的JS文件,有时是其他css,但它们必须在显示页面的其他内容之前下载,因此它们会阻止页面加载.由于等待下载该文件,因此网站不会显示59秒.

我检查了我的服务器,它的负载非常低,cpu运行10%,并且使用的ram不到20%.它是一个带有以下prefork设置的apache服务器:

StartServers       10
MinSpareServers    10
MaxSpareServers    20
ServerLimit        256
MaxClients         256
MaxRequestsPerChild  10000
Run Code Online (Sandbox Code Playgroud)

这提到的下载时间很慢,网站上可能有3-4个同时用户.我在AppM下使用appdynamics我的应用程序,没有任何可疑的显示在那里.我用服务器管理员检查了php.ini文件,一切似乎都很好.我可以使用哪些其他软件来查找此问题的来源?apache日志中的信息也不多.

任何建议将不胜感激

编辑:

我将所有资产都移到了webroot,并在另一个使用同一服务器的域上获得了这些结果:

在此输入图像描述

正如您所看到的,这次它的jquery文件需要27秒才能下载.它存储在app/webroot中

AD7*_*six 5

我会看看webroot提供的资产

始终将公共资产放在webroot中.

从书中(重点补充):

众所周知,通过PHP提供资产可以保证比在不调用PHP的情况下提供这些资产更慢.虽然核心团队已采取措施尽快使插件和主题资产服务,但可能会出现需要更多性能的情况.在这些情况下,建议您将插件/主题资源符号链接或复制到app/webroot中的目录,其路径与CakePHP使用的路径相匹配.

  • app/plugin/DebugKit/webroot/js/my_file.js成为app/webroot/debug_kit/js/my_file.js
  • app/View/Themed/Navy/webroot/css/navy.css成为app/webroot/theme/Navy/css/navy.css

根据许多因素,"较慢"可以介于几乎不可察觉到几乎无法使用的任何地方.

此建议不是特定于版本的,并且几乎总是适用.为了加快资产加载速度,让网络服务器为您处理这些问题.


小智 0

您是否尝试过缩小代码?减少代码中不必要的字符而不删除任何功能。这可以帮助加快下载时间。

看一下以下链接:http://www.htmlgoodies.com/beyond/reference/7-tips-to-make-your-websites-load-faster.html

  • 我用 google mod_pagespeed 缩小了我的 CSS,但这改变了加载时间一秒钟。我的问题是下载 30kb 文件需要一分钟,因此缩小无法解决问题 (2认同)