2015-11-01 52 views
1

我已经通过http://hapijs.com/tutorials/serving-files使用hapi中的相对路径访问静态文件

但它没有帮助我。

我有一个文件a.js在项目的根目录中的静态目录。

我已将relativePath配置为胶合配置,与inert插件位于项目的根目录中。

 plugins: { 
      'vision': {}, 
      'inert': { 
       routes: { 
        files: { 
         relativeTo: Path.join(__dirname, 'static') 
        } 
       } 
      }, 
      'visionary': { 
       engines: { 
      // other plugins 

我有一台服务器路线如下:

{ 
    method: 'GET', 
    path: '/a.js', 
    handler: { 
     file : 'a.js' 
    } 
} 

但是,当我尝试访问http://localhost:3000/a.js,它抛出一个404错误。

我错过了什么?

+0

我的答案是否奏效? –

回答

0

您需要更改代码的发球路线以下

server.route({ 
    method: 'GET', 
    path: '/a.js', 
    handler: function (request, reply) { 
     reply.file(a.js'); 
    } 
}); 
1

注册的inert插件的正确途径,并允许您为静态文件。

您有多个选项来为您的a.js文件提供服务,例如使用通配符路由参数为动态方法提供各种JS文件。内handler你需要的路径设置为您的JS目录和惰性会为给定的搜索file该文件夹内:

server.route({ 
    method: 'GET', 
    path: '/js/{file*}', 
    handler: { 
    directory: { 
     path: 'public/js' 
    } 
    } 
}) 

您还可以指定一个静态路由到您的JS文件和服务于它像这样:

server.route({ 
    method: 'GET', 
    path: '/mylocaljavascript.js', 
    handler: function (request, reply) { 
    // reply.file() expects the file path as parameter 
    reply.file('../path/to/my/localjavascript.js') 
    } 
}) 

希望有帮助!

如果您想了解提供静态文件的详细信息:https://futurestud.io/tutorials/hapi-how-to-serve-static-files-images-js-etc

0

为您服务,需要设置你的路由这样的目录:

{ 
path: '/{param*}', 
method: 'GET', 
config: { 
    handler: { 
    directory: { 
    path: path.resolve('directory_path') 
    } 
    } 
} 
} 

服务于一个静态文件,你可以这样做:

{ 
path: '/your_path', 
method: 'GET', 
config: { 
    handler: function(request, reply) { 
    return reply.file('your_pfile_path'); 
    } 
} 
} 

不要忘记在你的server.js文件中添加惰性需求并注册它。

var Inert = require('inert'); 
server.register(Inert,() => {});