0

NodeJS に関する Steven Senderson の投稿をフォローしています。この質問で提案されているように、Express のバージョン変更による破損コードを克服しました。index.htmlこれを使用して自分のページにアクセスすると、localhost:13253コンテンツがそのままレンダリングindex.htmlされます。を使用してレンダリングしていませんlayout.html。からトレースしましたがejs.jsejs-middleware関数も呼び出されますが、レイアウトは適用されていません。サーバーコードは次のとおりです。

var express = require('express'),
app = express(),
api = require("./api/server.js"),
ejsm = require('ejs'),
ejsMiddleware = require('ejs-middleware');

app.use('/api', api);

app.use(ejsMiddleware(__dirname + '/Static', 'html', app));

app.use(express.static(__dirname + '/Static'));

app.listen(process.env.port || 12345);

編集:-

//INDEX.HTML

this is homepage

//layout.html

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Inventify (alpha)</title>
        <script type="text/jscript" src="/scripts/jquery-1.8.3.min.js"></script>
        <script type="text/javascript" src="/scripts/knockout-2.2.0.js"></script>
        <link rel="stylesheet" href="/Styles/app.css"/>
    </head>
    <body>
        <h1 class="site-title">
            <a href="/">Iventify<span class="version">(alpha)</span></a>
        </h1>
        <div class="main-container">
            <%- body %>
        </div>
    </body>
    <script type="text/javascript">
        alert('from template');
</script>
</html>
4

1 に答える 1

0

エクスプレス バイナリを実行して、ベア エクスプレス プロジェクトを生成します (これが実行されます!)。

./node_modules/express/bin/express

と言う部分のために

app.set('view_engine', 'jade');

それを ejs に変更します。すべてのファイルを.ejsejs テンプレートとして読み取るようになりました。

于 2013-01-02T06:21:27.960 に答える