我们正在使用yeoman进行开发过程,目前使用“grunt server”命令运行grunt connect web服务器进行本地开发。每次我们保存文件时,grunt都会运行其所有任务并重新加载浏览器。
问题在于服务器端包含我们用来包含页眉和页脚。我们之前曾使用Apache,IIS和Tomcat,但不知道如何连接也可以这样做。它只是将其视为html评论。
例如包括:
<!--#include virtual="header.html" -->
所以, 1.有没有办法让grunt / connect包含这些文件? 2.如果没有,我们可以使用Apache与yeoman / grunt吗? 3.如果全部失败,是否有另一种方法可以包含带连接的文件?
答案 0 :(得分:6)
您可以在ssi节点模块的帮助下快速处理SSI。
我用这个简单的例子组成了一个github repo:https://github.com/sfarthin/express-ssi-example。
我将此应用程序部署到heroku,以便您可以看到它的实际效果:http://intense-basin-9464.herokuapp.com/
app.use(function(req,res,next) {
var filename = __dirname+(req.path == "/" ? "/index.shtml" : req.path);
if(fs.existsSync(filename)) {
res.send(parser.parse(filename, fs.readFileSync(filename, {encoding: "utf8"})).contents);
} else {
next();
}
});
答案 1 :(得分:2)
您可以轻松使用connect-ssi: https://github.com/soenkekluth/connect-ssi 我也使用了ssi模块。 现在我包括只允许.shtml文件。 “很快就会改变。
答案 2 :(得分:0)
非常感谢您的帮助@ steve-farthing和@soenke我最终使用了一个更简单的解决方案,即安装启用了SSI的Apache并将以下JS标记添加到页脚。
<script type="text/javascript">
document.write('<script src="//localhost:35729/livereload.js?snipver=1" type="text/javascript"><\/script>')
</script>
现在,当我们运行grunt serve
时,我们仍然需要手动导航到http://localh0st/app/
,但之后其他所有内容似乎都能正常运行。