我正在开发Openshift托管的NodeJS应用程序。现在一切都很好,但我想通过从web服务器提供静态文件(html,css,js)来加快速度,而不是从Express。我在某处读到过Node cartridges没有运行Apache服务器,因此没有.htaccess文件可以配置Apache来发送我的文件。
我如何在Openshift上的NodeJS应用程序中提供来自Apache或Nginx等web服务器的静态文件?
发布于 2015-05-08 21:58:59
这可能适合你的需要。当它得到静态服务器时是空的...
var finalhandler = require('finalhandler')
var http = require('http')
var serveStatic = require('serve-static')
// Serve up public/ftp folder
var serve = serveStatic('public/', {'index': ['index.html']})
// Create server
var server = http.createServer(function(req, res){
var done = finalhandler(req, res)
serve(req, res, done)
})
// Listen
server.listen(process.env.PORT || 3000);发布于 2015-11-28 05:39:36
距离最初的问题发布已经有一段时间了,但也许这会对其他面临同样问题的人有所帮助。在这里看看这个定制的OpenShift墨盒:https://github.com/gsterjov/openshift-nginx-cartridge
我没有亲自测试过它,但我已经构建了其他定制的插件,我知道如果您精通shell,OpenShift平台是相当灵活的,所以如果上面的插件不适合您的需要,您可以很容易地对其进行叉子,并根据您的需要进行调整。
就我个人而言,我几乎总是为来自Node.js的静态资产提供服务。built-in static server in Express.js最近变得好多了,如果你需要对缓存/ etags进行更多的控制,还有st。
此外,我最近遇到了一个有趣的类似CDN的静态资产托管的替代方案:http://surge.sh。我可以想象实现一个在部署时发布静态资产的吞咽/咆哮场景是相当简单的……
https://stackoverflow.com/questions/30125305
复制相似问题