我们有一个基于angular 6的全新应用程序,由Apache 2.4提供服务。
我们设置了一个本地“ prerender”实例,以使搜索引擎可以爬网该网站,我们尝试了Angular Universal,但由于库兼容性问题很多,我们决定使用prerender解决方案。
然后,我们添加了google analytcs跟踪代码,并在收集了几天的数据后,运行了google PageSpeed Insights工具。
这是我们收到的PageSpeed Insights得分:
PageSpeed Insights工具收到的优化建议是:
我们还使用https://tools.pingdom.com测试了网站速度,结果是:
答案 0 :(得分:2)
一段时间后,我们对应用程序进行了一些优化;这是到目前为止我们优化的内容,希望对其他人有用。
启用压缩:
经过一番调查,这是我们在angular应用程序的.htaccess
中添加的配置,用于为HTML,CSS,JavaScript,Text,XML和字体设置gzip压缩。
请参阅https://httpd.apache.org/docs/2.4/mod/mod_deflate.html和https://gtmetrix.com/enable-gzip-compression.html,以获取更多参考。
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Remove browser bugs (only needed for really old browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>
利用浏览器缓存:
因为我们正在使用ng build --prod
来构建角度应用程序,所以该应用程序是使用缓存清除来打包的:文件的名称类似于runtime.06daa30a2963fa413676.js
,我们可以在静态资源上使用相当长的Expires标头
这是添加到.htaccess
的配置,它使用mod_expires向HTTP响应添加漂亮的Expires标头
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 6 month"
ExpiresByType image/jpeg "access 6 month"
ExpiresByType image/gif "access 6 month"
ExpiresByType image/png "access 6 month"
ExpiresByType image/svg+xml "access 6 month"
ExpiresByType text/css "access 6 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType image/x-icon "access 6 month"
ExpiresDefault "access 1 month"
</IfModule>