【问题标题】:Server side includes (SSI) with grunt connect web server服务器端包括(SSI)与 grunt 连接 Web 服务器
【发布时间】:2014-03-14 03:58:25
【问题描述】:

我们在开发过程中使用 yeoman,目前使用“grunt server”命令来运行 grunt connect Web 服务器以进行本地开发。每次我们保存文件时,grunt 都会运行它的所有任务并重新加载浏览器。

问题在于我们用来包含页眉和页脚的服务器端包含。我们之前使用过 Apache、IIS 和 Tomcat,但不知道如何连接来做同样的事情。它只是将其视为 html 注释。

例如包括:

<!--#include virtual="header.html" --> 

所以, 1. 有没有办法让 grunt/connect 包含这些文件? 2. 如果不能,我们可以将 Apache 与 yeoman/grunt 一起使用吗? 3. 如果都失败了,有没有其他方法可以通过 connect 来包含文件?

【问题讨论】:

    标签: node.js gruntjs connect yeoman ssi


    【解决方案1】:

    您可以在ssi 节点模块的帮助下快速处理 SSI。

    我用这个简单的例子整理了一个 github 存储库: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();
        }
    });
    

    【讨论】:

      【解决方案2】:

      您可以轻松使用 connect-ssi: https://github.com/soenkekluth/connect-ssi 我也为此使用了 ssi 模块。 现在我只允许 .shtml 文件包含。 '很快就会改变。

      【讨论】:

        【解决方案3】:

        非常感谢@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/,但之后其他一切似乎都可以正常工作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-31
          • 1970-01-01
          • 2011-04-24
          • 2011-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多