Webpack построил index.html из экспресса - PullRequest
0 голосов
/ 06 июня 2018

Я настроил экспресс для использования swig в качестве механизма шаблонов и / public в качестве каталога представлений и в статическом промежуточном программном обеспечении таким образом:

app.engine('html', engines.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/public');
app.use(express.static('public'));

Затем я настроилЭкспресс приложение для прослушивания запросов следующим образом:

app.use('/',(req,res)=>{
    res.render('index', {
       title: 'ciao'
    });
})

В моем шаблоне у меня есть что-то вроде

<!DOCTYPE html>
<html lang="en">
<head>
    <% for (var chunk in htmlWebpackPlugin.files.css) { %>
        <link rel="preload" href="<%= htmlWebpackPlugin.files.css[chunk] %>"  as="style">
    <% } %>
    <% for (var chunk in htmlWebpackPlugin.files.chunks) { %>
        <link rel="preload" href="<%= htmlWebpackPlugin.files.chunks[chunk].entry %>" as="script">
    <% } %>
</head>
<body>
    <h1>{{ title }}</h1>
</body>
</html>

Но «title» не заменяется на «ciao» и отображается как есть.

Это должен быть распространенный сценарий, так что, вероятно, я что-то упускаю.Спасибо за вашу помощь !!!!;)

РЕШЕНИЕ :

!!!Будьте осторожны, это решение предоставляет вашему шаблону публичный доступ.(mysite.com/index.html вернет ваш шаблон) Кстати, это можно легко исправить.

Удалите это:

app.engine('html', engines.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/public'); 

Установите индекс в статическом промежуточном программном обеспечении:

app.use('',express.static('public',{
  index: '_',
}));

Вместо res.render используйте:

app.use('/',(req,res)=>{
    return engines.swig(__dirname + '/public/index.html', {
        title: "Ciao",
        cache: true
    }).then((html)=>{
        return res.send(html);
    }).catch((err) => {
        throw err
    })
})

Вам необходимо установить npm i --save consolidate

В основном вы используете index.html в качестве шаблона и функции Swig Mix Swig Template +данные и возврат html.

Я буду дополнительно исследовать, если это решение повлияет на производительность, но не должно !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...