Google Cloud Functions:设置路径以提供静态文件

时间:2019-05-04 06:11:46

标签: express google-cloud-functions

我正在将Google Cloud Functions和基于Nodejs的普通网站一起使用。我在设置cssimagesjs之类的公共文件的路径时遇到困难。

以下是我的结构

\
  index.js 
  views
    main.njk
  public
    css
      style.css
    images
      image.png
    js
      main.js

index.js是主要的Google功能,带有以下内容(显示了相关代码)

..
const app = express();
app.use(cors);
..
app.use(express.static(path.join(__dirname, '/public')));
..
app.set('view engine', 'njk');
..
nunjucks.configure('views', {
  autoescape: true,
  express: app
});
..
app.get('/', (req, res, next) => {
  res.render('/main');
});
..
exports.funcName = functions.https.onRequest(app);

main.njk中,我使用以下相对路径加载CSS和js

..
<link rel="stylesheet" href="/css/style.css">
..
<script src="/js/main.js"></script>

但是,当我从浏览器加载URL时,css的路径显示为:

https://us-central1-project-id.cloudfunctions.net/css/style.css

,出现net::ERR_ABORTED 403错误。我注意到它没有在函数名称中添加/css。应该是

https://us-central1-project-id.cloudfunctions.net/funcName/css/style.css

我尝试将快速静态文件路径更改为:

app.use('/', express.static('public'));

app.use(express.static('public'));

仍然始终显示相同的路径错误。当我运行上述代码(通过运行NodeJS服务器)时,它可以工作。我应该做些什么更改才能获得相对于函数名称的路径?谢谢

0 个答案:

没有答案