如何从web项目生成单个优化的html文件
How to generate a single optimized html file from web a project?
我有一个典型的网页与单一的 html文件。这个页面使用css, javascript模块(requirejs)和图片。我想生成一个单一的html文件,其中包含所有嵌入和缩小的资源,包括html文件本身。
这是我的结构:
myApp/
www/
css/
css1.css
css2.css
img/
img1.png
img2.png
js/
main.js
module1.js
index.html
我想生成这个:
myApp/
www-build/
index.min.html
我知道存在不同的工具来优化javascript, css和html。但问题是如何将它们自动组装成一个文件。
我最终使用gruntjs和一系列grunt任务来完成这项工作:
- 一个带有include指令的Jade模板,用来导入js和css。
- grunt-base64将图像转换为base64。
翡翠文件,应该是这样的:
html
head
title= "Example Page"
include css/css1.css
include css/css2.css
include js/main.js
include js/module1.js
body
| <img src="data:image/png;base64,
include img1.b64
| "/>
| <img src="data:image/png;base64,
include img2.b64
| "/>
canvas#myCanvas
我还使用了uglify和其他优秀的预定义任务来优化代码。
你可以试试https://github.com/remy/inliner
你可以安装:
$ NPM install -g inline
,然后执行(参见inliner --help
的可能选项)
$ inline index.html> index.min.html
或者你也可以在http://inliner.webapplist.com/上使用
我不确定是否将其生成为一个完整的文件,但您可以使用Google Granule压缩[到一个文件]并以编程方式和动态地缩小您的CSS文件和JS文件。(当页面正在加载时)。这将大大减少网页加载时间。
付款:http://code.google.com/p/granule/
您可以在单个文件中包含所有内容,但我不认为这是个好主意,正如Pekka的评论已经指出的那样。但无论如何:你可以包含你的Javascript标签,与CSS(或内联CSS)一样。对于图像:您需要将它们转换为字符串,以便将它们保存在页面中。Base64编码将完成这项工作。下面是一个例子:http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 是否可以禁用jquery中的单个单选按钮
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 以可优化的方式使用requirejs加载模板
- 使用jquery选中/取消选中单个复选框
- 单个页面上有多个标记表单
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 用于多个类事件Jquery的单个函数
- 使用优化器在慢速连接上加载main.js时需要js超时
- JavaScript数组优化以提高性能
- 仅使用文件对象选择单个文件
- 如何使用单个表单填写多个表单
- 如何将html打包到单个应用程序中
- React+Redux性能优化与组件ShouldUpdate
- Grunt imagemin-观察多个文件/文件夹优化单个文件
- 压缩脚本和样式,并将所有js和样式引用合并为单个引用,以优化网站性能
- 用于多个目录项目的单个 RequireJS 优化器文件
- 如何从web项目生成单个优化的html文件
- 本机map, filter等方法是否优化为尽可能在单个中间数组上操作