我对这个问题完全迷失了,我敢肯定我现在一定是瞎子,但是我无法解决它。 Heroku正在返回一个存在的部分的找不到部分错误(如下)。
注意:这一切都可以在localhost上完美运行。
使用
文件结构:
| > Server
| > server.js
| > Views
| > layout.hbs
| > Partials
| > pageheader.hbs
server / server.js
let app = express();
hbs.registerPartials(__dirname + '\\..\\views\\partials');
app.set('view engine', 'hbs');
app.get('/', (req, res) => {
res.render('layout.hbs', {
title: 'Home'
}
});
views / layout.hbs
...
<body>
{{> pageheader}}
</body>
...
视图/部分/pageheader.hbs
<h1>{{title}}</h1>
最后...
Heroku日志
/app/node_modules/handlebars/dist/cjs/handlebars/runtime.js:266
throw new _exception2['default']('The partial ' + options.name + ' could not be found');
^
Error: The partial pageheader could not be found
at Object.invokePartial (/app/node_modules/handlebars/dist/cjs/handlebars/runtime.js:266:11)
at Object.invokePartialWrapper [as invokePartial] (/app/node_modules/handlebars/dist/cjs/handlebars/runtime.js:68:39)
at Object.eval [as main] (eval at createFunctionContext (/app/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:254:23), <anonymous>:12:28)
at main (/app/node_modules/handlebars/dist/cjs/handlebars/runtime.js:173:32)
at ret (/app/node_modules/handlebars/dist/cjs/handlebars/runtime.js:176:12)
at ret (/app/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:525:21)
at render_file (/app/node_modules/hbs/lib/hbs.js:49:23)
at render_with_layout (/app/node_modules/hbs/lib/hbs.js:80:5)
at cacheAndCompile (/app/node_modules/hbs/lib/hbs.js:151:5)
at /app/node_modules/hbs/lib/hbs.js:171:7
at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
我感谢任何帮助/建议,我已经搜索过google,阅读了所有可以找到的相关内容。我只是不明白为什么它可以在localhost而不是Heroku上工作。
答案 0 :(得分:0)
我认为文件路径错误,请尝试更改
PurePNG
到
__dirname + '\\..\\views\\partials'
答案 1 :(得分:0)
所以...我想我已经在路径的“ ..”部分找到了问题。
我已将server.js移至根目录并更改了文件引用以匹配该更改...现在在任何地方都可以正常工作。