在Hapi.js中提供静态JavaScript文件无法正常工作

时间:2015-04-03 17:18:31

标签: javascript node.js hapijs

我创建了一个这样的静态路由:

"use strict";

var StaticPlugin = {
    register: function (server, options, next) {
        server.route([
            {
                method: 'GET',
                path: '/public/{path*}',
                config: {
                    auth: false,
                    description: 'Static assets',
                    handler: {
                        directory: {
                            path: '../public',
                            index: false,
                            listing: false
                        }
                    }
                }
            }
        ]);

        return next();
    }
};

StaticPlugin.register.attributes = {
    name: 'StaticPlugin',
    version: '1.0.0'
};

module.exports = StaticPlugin;

我注册了插件,但是当我尝试加载静态JS文件(将用于提供静态js库)时,我收到404错误。

我想点击的网址是http://localhost:3000/public/javascripts/mylib.js

2 个答案:

答案 0 :(得分:3)

在您的配置中,路径是相对于运行进程的目录。如果此插件位于子目录中并且您在主目录中启动服务器,则路径将不正确。使用相对于项目根目录的路径,或将Path.join()__dirname结合使用,例如:

var Path = require('path');
Path.join(__dirname, '../public')

答案 1 :(得分:0)

您必须确保使用插件" Inert"