【发布时间】:2017-06-22 23:18:53
【问题描述】:
我在部署到 Heroku 时不断收到此错误。构建过程成功,但随后出现此错误。无法弄清楚问题出在哪里,路径不应该是 src/server/views 吗?一切都在本地运行。
Error: Failed to lookup view "index" in views directory "src\server/views"
[web.1]:at /app/node_modules/express/lib/router/index.js:281:22
app[web.1]:at param (/app/node_modules/express/lib/router/index.js:354:14)
app[web.1]:at Function.render(/app/node_modules/express/lib/application.js:580:17)
app[web.1]:at param (/app/node_modules/express/lib/router/index.js:365:14)
app[web.1]:at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
app[web.1]:at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
我使用 webpack tu 捆绑我的服务器端代码,并使用 html-webpack-plugin 将我的 index.ejs 模板从视图文件夹注入到 webpack 捆绑包。
webpack.config.server.js
module.exports = {
devtool: 'source-map',
performance: {
hints: false
},
target: 'node',
node: {
__dirname: true,
__filename: true
},
entry: {
bundle: './src/server/prodServer.js'
},
output: {
path: path.join(buildPath, 'build'),
filename: '[name].js'
}
...
plugins: [
new HtmlWebpackPlugin({
template: 'ejs-loader!./src/server/views/index.ejs'
})
]
prodServer.js
app.set('view engine', 'ejs')
app.set('views', path.join(__dirname, 'views'))
文件夹结构
如您所见,我在 views 文件夹中有 index.ejs。 prodServer 是我的服务器文件,在 webpack 构建之后,我得到了 bundle 文件和 index.html。
在 Heroku 启动脚本中,我运行 node ./src/build/bundle.js
【问题讨论】:
-
哦,我刚刚注意到 Heroku 在我所有的路径中都添加了“应用程序”。你可以看到它是错误的。这是为什么呢?
-
你找到答案了吗?我遇到了同样的问题
标签: heroku deployment webpack