我已经完成了http://hapijs.com/tutorials/serving-files
但它并没有帮助我。
我在项目根目录的静态目录中有一个文件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 :(得分: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
答案 1 :(得分:1)
要提供目录,您需要像这样设置路线:
{
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, () => {});
答案 2 :(得分:0)
您需要将服务路线的代码更改为以下
server.route({
method: 'GET',
path: '/a.js',
handler: function (request, reply) {
reply.file(a.js');
}
});