не загружать файлы jquery в nodejs с помощью hapi

Я пробовал как код (закомментированный, так и некомментированный) в закомментированном коде, он показывает ошибку answer.file is not a fumction . В раскомментированном коде отображается ошибка неизвестного файла обработчика, который я также включил inert.

      server.route({    // Other assets If you have
        method: 'GET',
        path: '/public/js/{filename}',
        handler: {
       file: function (request) {
           return  './public/js/'+request.params.filename;
       }
//        try{
//            console.log(request.params);
//            reply.file( './public/js/'+request.params.filename);
//        }
//        catch(e){
//             console.log(e);
//            reply.file( './public/js/'+request.params.filename);
//        }
       }
});

person Mann    schedule 08.02.2016    source источник


Ответы (2)


см.: http://hapijs.com/tutorials/serving-files#relative-paths используйте модуль inert

server.register(Inert, function () {
  server.route( {
    method: 'GET',
    path: '/{param*}',
    handler: {
      directory: { path: Path.normalize(__dirname + '/') }
    }
  });

Вы также можете попробовать

server.register(Inert, () =>{
    server.route( {
        method: 'GET',
        path: '/public/js/{filename}',
        handler: {
            file: function (request) {
                return __dirname+'/public/js/'+request.params.filename;
            }
        }
    });
});
person user3510665    schedule 08.02.2016

для обслуживания статических файлов требуется модуль inert

Обновлено


сервер.js

'use strict';

const Hapi = require('hapi');
const Inert = require('inert');
const server = new Hapi.Server();

// config
server.connection({
    port: 3000
});

// register routes
server.register(Inert, (err) => {
    if (err) {
        throw err;
    }

    // default html
    server.route({
        method: 'GET',
        path: '/',
        handler: function (request, reply) {
            reply.file('./public/index.html');
        }
    });

    // default /js directory
    server.route({
        method: 'GET',
        path: '/js/{params*}',
        handler: {
            directory: {
                path: './public/js',
                listing: false
            }
        }
    });
});

// run
server.start(() => {
    console.log('Server running at:', server.info.uri);
});

общедоступный/index.html

<!doctype html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Hapi demo: serving static files</title>
    <script type="text/javascript" src="js/foo.js"></script>
</head>

<body>
    <h2>see console output.</h2>
</body>

</html>

общедоступный/js/foo.js

'use strict';

(function () {
    console.log('foo.js has been loaded');
})();

см.: http://hapijs.com/tutorials/serving-files#relative-paths

person aifarfa    schedule 08.02.2016