Как можно заставить Express отображать некоторые динамические представления с указанием на динамически именованные ресурсы?
Динамический просмотр:
res.render('index', {
title: someDynamicVariable
});
Динамически генерируемый и именованный актив:
function js() {
return src('./src/client/js/index.js')
.pipe(rev())
.pipe(
webpackStream(webpackConfig),
webpack
)
.pipe(dest('./dist/assets'));
}
JS компилируется в /dist/assets
.
И его имя обновляется с каждым изменением bundle-9878139898jc29872.js
.
Подключение вида .
В представлении есть места, предназначенные для замены тегами сценариев и тегами стилей, указывающими на динамически генерируемые ресурсы в /dist
.
doctype html
html
head
title the layout title
//- inject:js
//- endinject
//- inject:css
//- endinject
body
#nav
block content
и чтобы это произошло, запустите эти задачи ...
function injectInHTML() {
const assets = src(['./dist/**/*.js', './dist/**/*.css'], { read: false });
return src('./src/server/views/layout.pug')
.pipe(inject(assets))
.pipe(dest('./dist/views'));
}
function html() {
return src('./src/server/views/*.pug')
.pipe(pug())
.pipe(dest('./dist/views'));
}
Проблема .
Но на этом этапе шаблоны pug
находятся в dist
. Они были введены с правильными тегами сценария / стиля. Но они больше не «динамичны». Это просто HTML-файлы.
Как можно иметь как динамические представления, так и представления, на которые указывают / внедряются динамические активы?