Azure server can't find handlebars views
I am using handlebars to generate html on my server and send it to my users when they land on my express routes. My route looks something like this :
userRouter.get(
'/template-reset-password/:from',
async (req: Request, res: Response) => {
return res.status(200).render('reset-password', { data: req.data });
},
);
I've setup my express server to accept handleBars files as my view engine. Here's the code I have in my index.ts file :
app.engine(
'handlebars',
engine({
defaultLayout: false,
layoutsDir: `${__dirname}/public/html`,
}),
);
app.set('view engine', 'handlebars');
app.set('views', `${__dirname}/public/html`);
On my local machine when i try to access this route, my server send me the html normally and my server can find the directory where my handlebar files are stored. But when I use the same code on my staging server, which is hosted on azure, the server can't find the files and send me this error :
Error: Failed to lookup view "reset-password" in views directory "/usr/src/server/public/html"
at Function.render (/usr/src/server/node_modules/express/lib/application.js:597:17)
at ServerResponse.render (/usr/src/server/node_modules/express/lib/response.js:1039:7)
at /usr/src/server/adapters/primary/routes/user.route.js:114:28
at Generator.next (<anonymous>)
at /usr/src/server/adapters/primary/routes/user.route.js:8:71
at new Promise (<anonymous>)
at __awaiter (/usr/src/server/adapters/primary/routes/user.route.js:4:12)
at /usr/src/server/adapters/primary/routes/user.route.js:111:268
at Layer.handle [as handle_request] (/usr/src/server/node_modules/express/lib/router/layer.js:95:5)
at next (/usr/src/server/node_modules/express/lib/router/route.js:144:13)
I figured this probably has to do with my azure server config not accepting .handlebar files type, and sending me a "not found" error. Since I'm really new at azure I'd appreciate deep explanations on how to resolve this error. Thanks in advance.
I tried to use handlebars engine on my azure server just like on my local machine. I've encountered the same issue trying to use EJS templates.