首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HapiJS -静态文件

HapiJS -静态文件
EN

Stack Overflow用户
提问于 2017-05-30 19:12:34
回答 1查看 402关注 0票数 0

我正在尝试创建一个插件,用于在HapiJS中服务我的静态文件。我的文件结构如下

代码语言:javascript
运行
复制
|_ plugins
|  |_ assets
|    |_ assets.js
|    |_ package.json 
|  |_ views
|_ public
|  |_ css
|app.js
| config.json
| package.json

在我的plugins/assets/assets.js文件中,我有以下代码:

代码语言:javascript
运行
复制
const Inert = require('inert');

exports.register = function(server, options, next) {

    server.register('inert');

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

    next();
};

exports.register.attributes = {
    pkg: require('./package');
}

在我的config.json文件(胶水清单)中:

代码语言:javascript
运行
复制
{
  "server": {
    "app": {
      "slogan": "We push the web forward"
    }
  },
  "connections": [
    {
      "port": 3000,
      "labels": ["web-ui"]
    }
  ],
  "registrations": [
    {"plugin": "vision"},
    {"plugin": "inert"},
    {"plugin": "glue"},
    {"plugin": "./plugins/assets"}
  ]
}

最后,在我的app.js中:

代码语言:javascript
运行
复制
var Hapi = require('hapi');
var Glue = require('glue');

var manifest = require('./config.json');

const options = {
    relativeTo: __dirname
};

Glue.compose(manifest, options, function (err, server) {
    server.start(function(err) {
        console.log('Server running');
    });
});

我的问题是,这是使用胶水插件方法提供静态文件的正确方法吗?我看到的所有示例都不使用插件方法,而是使用app.js文件中的app.js()来为来自公共目录的静态文件提供服务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-30 19:55:21

从节点服务静态文件的最佳方法是:不要。

CDN是非常可取的:

  • CDN每发送一兆字节就收取费用。
  • 云实例向您每次正常运行时间收费。

按月计算,对于定期申请,两者之间的差额约为数千美元。

在开发环境中,在没有CDN的情况下,您可以从像nginx这样的常规web服务器上提供文件。这也是较少的工作,因为nginx封装在大多数发行版。

这方面还有一些性能考虑因素,您希望尽可能快地保持应用程序服务器的速度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44270174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档