我有一个项目,其中包括一个文件上传形式,其中使用了快速路由器和翡翠/哈巴狗模板渲染2个不同的看法。
我尝试使用webpack将所有的javascript文件编译成一个(backend.js
),并将这个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时,我得到一个“no such file or directory”错误。这就是我试图呈现form.pug
文件的方式。其大口地变成X1 M7 N1 X。
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
函数是否需要我遗漏的东西,或者这是完全不可能的。任何帮助都将不胜感激。
1条答案
按热度按时间gudnpqoy1#
我认为使用
path.join()
(参见此处的文档)的目的是构建一个与所有操作系统兼容的路径字符串。它将所有路径片段作为参数,如下所示:
也许在
__dirname
和build
之间缺少一个/
?