Функции Firebase не обслуживают статические файлы с помощью express.js и EJS view engine - PullRequest
0 голосов
/ 01 февраля 2019

Я изучал эту проблему в течение последнего месяца и не нахожу никаких полезных решений.В настоящее время я пытаюсь разместить веб-сайт, используя функции firebase, а также express.js и движок представления EJS.

Я собираюсь подать статические CSS-файлы в EJS-файлы.Я просмотрел все, но не могу найти какой-либо правильный ответ, который помогает.

У меня есть следующая структура файла (внутри папки функций):

  • public
  • просмотров
  • index.js

Вот мой index.js:

const functions = require('firebase-functions');
const express = require("express");
const ejs = require("ejs");
var path = require('path');

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
//  response.send("Hello from Firebase!");
// });

var app = express();

app.set('view engine', 'ejs');

// app.use('/static', express.static('public'));
app.use(express.static(__dirname + "/public"));
app.get("/", (request, response) => {
    response.render("test");
})

// app.listen(5000, () => {
    // console.log("Active app on port 5000");
// });
exports.webApp = functions.https.onRequest(app);

Страница, которую она отображает (test.ejs):

<html>

<head>

    <link rel="stylesheet" href="style.css" type="text/css">
</head>


<body></body>
</html>

И, наконец, файл style.css:

html {
    background-color: black;
}

(style.css делается так же, как и test.ejs, только для тестирования, поскольку у меня была большая проблема со всем этим)

Я попробовал большинство решений онлайн, однако все они работают только при локальном запуске приложения express.js, а , а не через команды обслуживания или развертывания firebase.Я полностью потерян в этом отношении, и любая помощь приветствуется.

1 Ответ

0 голосов
/ 19 апреля 2019

Проблема из-за Google Cloud Plan.

В начале все пользователи Firebase используют план Spark, который абсолютно бесплатен.В последнее время Google Cloud может заблокировать некоторые функции, которые мы использовали бесплатно год назад.

Итак, вам нужно перейти на Консоль Google Cloud , а затем изменить план своего проекта, который вы хотите развернуть.Затем, если вы не зарегистрировали свою платежную карту, вы должны сделать это для функции firebase host или firebase .enter image description here

Через несколько минут он загружает все необходимые файлы, такие как стили CSS, файлы JS, которые отсутствовали при загрузке развернутого веб-сайта.

Тогда наслаждайтесь развернутым сайтом.;)

...