【发布时间】:2016-11-29 08:35:05
【问题描述】:
我有一个项目,它包含一个文件上传表单,它使用快速路由器和jade/pug 模板渲染2个不同的视图。
我正在尝试使用 webpack 将我的所有 javascript 文件编译成一个 (backend.js),然后 gulp 将该 backend.js 文件以及 3 个 .pug 文件编译到另一个目录中。
webpack 编译好项目中包含的 js 文件后,将它们放在 build/backend.js 中: project-after-webpack
最后,gulp 获取 backend.js 文件以及位于项目中另一个文件夹中的 pug 模板,并将它们放在这个结构中,将 backend.js 编译为 main.js,并将我所有的 pug 文件转换为HTML 文件:
project-after-gulp
项目的其余部分在根目录中。
其中一个 javascript 文件负责根据某些 http 请求呈现视图。这就是我遇到麻烦的地方。如果没有 gulp 和 webpack,我可以使用 res.render() 毫无问题地渲染 .pug 视图。但是,当我使用 gulp 和 webpack 时,出现“没有这样的文件或目录”错误。这就是我尝试渲染form.pug 文件的方式,该文件被gulp 转换为form.html。
router.get('/', function list (req, res, next) {
//res.render('submissions/form.pug'
res.sendFile(path.join(__dirname+'build/submissions/form.html'), {
submission: {},
action: 'Add'
});
});
控制台告诉我ENOENT: no such file or directory, stat '/form.html',尽管您可以看到那里实际上有一个文件。
我不确定我的路径是否不正确,是否使用 .sendFile 函数需要我缺少的任何东西,或者这是否完全不可能。任何帮助都将不胜感激。
【问题讨论】:
标签: node.js express gulp webpack pug