如何在Express中拥有动态视图并指向已编译资产?

时间:2019-05-14 02:04:54

标签: express webpack gulp

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文件。

如何同时具有动态视图和指向/注入动态资产的视图?

0 个答案:

没有答案