使用firebase函数提供html文件

时间:2018-06-19 00:03:38

标签: firebase google-cloud-functions firebase-hosting

如何使用firebase功能提供位于index.html文件夹中的blog文件。

这是我的文件树

FirebaseWebsite
  │   
  ├── blog
  │   ├── index.html
  │   ├── css
  │   │   ├── fonts
  │   │   │   ├── FontAwesome.otf
  │   │   │   ├── fontawesome-webfont.eot
  │   │   │   ├── fontawesome-webfont.svg
  │   │   │   ├── fontawesome-webfont.ttf
  │   │   │   └── fontawesome-webfont.woff
  │   │   ├── images
  │   │   │   └── banner.jpg
  │   │   └── style.css
  │   ├── fancybox
  │   │   ├── blank.gif
  │   │   ├── fancybox_loading.gif
  │   │   ├── fancybox_loading@2x.gif
  │   │   ├── fancybox_overlay.png
  │   │   ├── fancybox_sprite.png
  │   │   ├── fancybox_sprite@2x.png
  │   │   ├── helpers
  │   │   │   ├── fancybox_buttons.png
  │   │   │   ├── jquery.fancybox-buttons.css
  │   │   │   ├── jquery.fancybox-buttons.js
  │   │   │   ├── jquery.fancybox-media.js
  │   │   │   ├── jquery.fancybox-thumbs.css
  │   │   │   └── jquery.fancybox-thumbs.js
  │   │   ├── jquery.fancybox.css
  │   │   ├── jquery.fancybox.js
  │   │   └── jquery.fancybox.pack.js
  │   ├── js
  │   │   └── script.js
  │   └── tags
  │       └── Topic-for-blog
  │           └── index.html
  ├── index.js
  │
  ├── functions
  │      └── index.js
  │
  ├── Public
  │      └── aboutUs.html
  │
  └── firebase.json

这是我正在使用的firebase功能

index.js(来自函数文件夹)

const functions = require('firebase-functions');
const express   = require('express');
const blogApp   = express();

blogApp.get('/blog', (request, response) => {

    response.sendfile('../blog/public/index.html');
});

exports.blogApp = functions.https.onRequest(blogApp);

以下是配置

firebase.json

{
  "database": {
    "rules": "database.rules.json"
  },
  "hosting": {
    "public": "public",
    "rewrites": [
      {
        "source": "/blog",
        "function": "blogApp"
      }
    ],
    "cleanUrls": true
  }
}

以下是访问url

时出现的错误
  

拒绝加载图片''因为它违反了以下内容   内容安全策略指令:“default-src'self'”。注意   'img-src'没有明确设置,所以'default-src'用作a   回退。

非常感谢任何有关解决此问题的指导。

1 个答案:

答案 0 :(得分:0)

部署功能时,functions文件夹中的所有内容都会打包并发送到云功能。此文件夹之外没有任何内容发送,这意味着您的blog文件夹在运行时不可用(您的静态Web内容也未部署到Firebase托管)。如果您希望部署的代码在运行时可以读取blog的内容,则在运行deploy命令之前它应该位于functions文件夹中。