如何配置express.static从谷歌云CDN拉取静态内容?

时间:2016-09-09 01:07:31

标签: angularjs google-app-engine express google-cdn

我正在尝试在Google云应用引擎中托管Angular应用。使用express来提供内容和静态应来自谷歌CDN。

Dist建立并交付给CDN。 CDN存储桶也已共享。

我把它全部作为一个基本的快递应用程序,提供来自本地./dist文件夹的静态内容。如何配置它以对抗CDN?

'use strict';
var express = require('express');
var app = express();
app.use(express.static('dist'));
app.get('/', function (req, res) {
  res.render('index.html');
});

var server = app.listen(process.env.PORT || '8080', function () {
  console.log('App listening on port %s', server.address().port);
  console.log('Press Ctrl+C to quit.');
});

欣赏任何指示。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您从cdn提供静态内容,则根本不需要使用express static。只需使用cdn urls指向资产。

一个非常典型的事情可能是让一个帮助器在你的模板中加载正确的cdn url。像这样:

<head>
  <link href="{{cdn '/css/app.css'}}">
</head>

在开发模式下,它只会解析为http://localhost:3000/css/app.css但在生产中可能会https://cdn-something.com/2.10.2 ...

您可以在开发环境中有条件地加载快速静态中间件。或者,您可以使用apache,nginx或甚至是与应用程序不同的端口上的其他节点进程在本地提供静态资源。