【问题标题】:Hapi.js views not seeing local scriptsHapi.js 视图没有看到本地脚本
【发布时间】:2014-07-14 03:48:30
【问题描述】:

我目前正在开发一个带有使用 Hapi 的服务器的应用程序,每当我尝试加载 .jade 文件时都会遇到问题。这是我的index.js 文件的当前代码:

var Hapi = require('hapi');

var internals = {};

internals.main = function() {
  var options = {
    views: {
      engines: { jade: 'jade' },
      path: '../app',
      compileOptions: {
        pretty: true
      }
    }
  };

  this._server = new Hapi.createServer('localhost', 8000, options);

  this._server.route({
    method: 'GET',
    path: '/',
    handler: function(request, reply) {
      reply.view('index')
    }
  });
  // Start server.
  this._server.start()
};

internals.main();

该文件有一系列位于app 目录中的本地脚本和CSS 文件,但是当页面index.jade 加载时,它看不到那些本地文件。我需要在我的选项中添加/修改什么,或者本地脚本和样式文件的这个位置是使用 Hapi 进行翡翠编译的问题吗?

【问题讨论】:

    标签: javascript node.js hapijs


    【解决方案1】:

    我正在寻找类似的解决方案,同时尝试使用 angular.js 和 hapi.js 设置单页应用程序

    我发现将以下配置添加到您的服务器路由将有助于使“/public”目录中的 CSS、JS、... 文件对应用程序可见。

    server.route({
        method: "GET",
        path: "/public/{path*}",
        handler: {
            directory: {
                path: "./public",
                listing: false,
                index: false
            }
        }
    });
    

    希望对你有帮助。

    【讨论】:

    • 如果可能的话,您能否发布您的 html 文件以查看它是如何引用这些文件的。?或者一个小的应用架构展示。例如-app -public -js app.js -css page.css
    • 注意:您需要安装 inert 插件并注册它才能使此解决方案适用于版本 9.0.0+ github.com/hapijs/inert#static-file-server
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2014-11-09
    • 1970-01-01
    • 2011-03-21
    • 2012-08-16
    • 2011-06-18
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多