渲染vue js内置到Node js和Hapi js项目中

时间:2018-08-27 10:08:04

标签: node.js vue.js handlebars.js hapijs vision

我在vue js中建立了一个前端网站,现在我正在尝试编程 后端,在nodejs和hapijs中。 我试图定义车把视图引擎来加载vue构建文件。 我想知道如何使用hapi js在服务器中渲染vue项目, 因为现在,我尝试呈现vuejs的内置索引,并在不包含js和css文件的情况下将其加载,并且我不了解如何使用所有静态内容加载该文件。

我尝试过的:

await server.register([require('hapi-auth-basic'), require('vision')]);

server.views({
  engines: {
    html: require('handlebars')
  },
  path: './views',
  layout: true
})



server.route({
  method: 'GET',
  path: '/',
  handler: (request, h) => {
    console.log(request.auth.credentials);
    return h.view('index');
  }
});

因此,它向我显示了页面标题,但所有其他文件均得到禁止响应。

结构: 服务器  ->意见   -> index.html   静态的    -> css / js / img / fonts ...

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我认为您遇到的问题是,您在server.views({ ... })注册中缺少“ relativeTo”属性,此外,还需要设置服务器以提供静态文件as outlined in the documentation here。值得注意的是,虽然hapi可以很好地处理静态文件,但让它在生产环境中执行并不是一个好主意。我个人更喜欢创建nginx或apache规则,以便在匹配时从资产目录中读取文件,因为它的性能更高。