我们正在 Hapi.js 项目中尝试提供静态(JS / CSS /等)文件,并需要确认我们是获得正确的Mime类型。
var Path = require('path');
var Hapi = require('hapi');
var server = new Hapi.Server();
var port = process.env.PORT || 5000;
server.connection({ port: port });
server.views({
engines: {
html: require('handlebars')
},
path: Path.join(__dirname, 'views')
});
server.route([
{ path: '/',
method: 'GET',
config: {
auth: false,
handler: function(request, reply) {
reply.view("index");
}
}
},
{
method: 'GET',
path: '/public/{param*}',
handler: {
directory: {
path: Path.normalize(__dirname + '/public')
}
}
}
]);
server.start(function(){
console.log('Static Server Listening on : http://127.0.0.1:' +port);
});
module.exports = server;
实例/视图/ index.html中
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Serving Static Content in Hapi.js 8.2</title>
</head>
<body>
<h1> Open the Console...</h1>
<script src="/public/hello.js"></script>
</body>
</html>
例子/公/ hello.js
console.log('hello (should print in the console)');
根据文档文档:http://hapijs.com/tutorials/serving-files
访问浏览器中的网址: http://127.0.0.1:5000/public/hello.js 我们看到:
当我们curl -v http://127.0.0.1:5000/public/hello.js
这表明正确的内容类型正在发送给客户端。
node examples/staticfiles.js
谢谢 提前为您提供帮助!
答案 0 :(得分:0)
我在这里看不到任何问题。 Hapi使用正确的mime类型(application / javascript)提供静态文件。你可以在curl的输出中看到这个,你也可以在浏览器中看到它:
当您访问http://127.0.0.1:5000/并打开控制台时,您会看到console.log
已执行。