我有一个相当典型的PHP项目,其中页面的页眉/页脚部分被重用,因此被放置在单独的文件中,我只是从主文件中require
。
然而,这意味着我的_header.php
-文件以一个打开的<article>
标记结束(然后在_footer.php
的开头"关闭")。
问题是htmlmin
将此解释为我的错误,并在_header.php
中添加了关闭的article
、body
和html
标记。我该如何"禁用"它?我读过grunt contrib htmlmin和html minifier的GitHub页面,运气不太好。
我的任务配置
htmlmin: {
dist: {
options: {
minifyJS: true,
removeComments: true,
collapseWhitespace: true
},
files: {
'staging/index.php': 'index.php',
'staging/support/index.php': 'support/index.php',
'staging/inc/_header.php': 'inc/_header.php',
'staging/inc/_footer.php': 'inc/_footer.php'
}
}
}
如果你也能告诉我为什么minifyJS: true
似乎被忽略了,可以获得额外的布朗尼积分
谢谢。
我知道有一个解决方案并不理想,那就是通过将标记包装在中来使用忽略注释
<!-- htmlmin:ignore -->
https://github.com/kangax/html-minifier#ignoring-标记块
或者你可以使用一个不同的工具,比如HTMLClean:
https://www.npmjs.com/package/grunt-htmlclean
我搜索了一个解决方案,查看了文档,阅读了几篇博客文章,发现此时您所问的是不可能。
此外,有人在GitHub上问了一个类似的问题,支持html片段,但最终以结束
嗯,我认为我们对此无能为力,因为minimier确实需要有上下文意识,无法理解如何处理任意的、部分的html块。
因此,这是不可能的,而且(可能)将来也不会实现。
您不能阻止该进程(使用grunt contrib htmlmin),因为它们的目的是专门防止用户留下"不正确的代码"。
我没有找到任何其他等效的grunt插件给你这种可能性。
最后,我认为你只剩下两个"解决方案":
1) 不缩小php片段;
2) 将代码分成更多的部分,只缩小没有未关闭标记的部分,并在新的php文件中使用grunt-includ-replace或类似的插件将它们重新组合。
我遇到了同样的问题,并使用htmlmin:ignore
和includeAutoGeneratedTags
组合进行了修复
grunt.js
htmlmin: {
dist: {
options: {
removeComments: true,
includeAutoGeneratedTags: false,
collapseWhitespace: true,
conservativeCollapse: true,
},
files: [
{ src: ['<%= meta.deployPath %>/includes/footer.php'], dest: '<%= meta.deployPath %>/includes/footer.php', nonull: true},
]
}
},
footer.php
<!-- htmlmin:ignore --></div><!-- htmlmin:ignore -->
<footer id="page-footer" role="contentinfo">
...