Как использовать внешнюю таблицу стилей с Firebase, Express и HBS - PullRequest
0 голосов
/ 19 февраля 2019

Наткнулся на ответы на вопросы только для Node, но, похоже, не может найти ответ, когда это сервер Express, размещенный на Firebase.

Проблема, с которой я столкнулся, заключается в том, что файл config.css небыть обнаруженным независимо от того, что я делаю.Я пытался использовать Express Middleware для изменения корня, но есть проблемы, когда он говорит, что MIME-тип неверен.В другой раз это говорит 404 не найдено.

Дайте мне знать, если есть какие-либо другие детали, которые я должен предоставить.

index.js file:

const functions = require('firebase-functions');
const firebase = require('firebase-admin');
const express = require('express');
const engines = require('consolidate');
const bodyParser = require("body-parser");
var config = {
  <config details here>
};

const firebaseApp = firebase.initializeApp(functions.config().firebase);
const database = firebase.database();
const hbs = require('handlebars');


const getUpdates = () => {
  return new Promise((resolve, reject) => {
    try {
        const ref = firebaseApp.database().ref('servers');
        resolve(ref.orderByChild("sortDate").once("value"), ref);
    } catch (e) {
        reject(e);
    }
  });
};

const app = express();
app.engine('hbs', engines.handlebars);
app.set('views', './views');
app.set('view engine', 'hbs');
app.use(bodyParser.urlencoded({
  extended: true
}));
app.use(bodyParser.json());

app.post("/config", function (req, res) {
  let pushObject = req.body;
  pushObject.time = new Date();
  pushObject.sortDate = new Date();
  console.log(pushObject)

  firebase.database().ref('servers/testserver').set(pushObject, (error) => {
    if (error) {
      console.log(error);
    } else {
      console.log('Message pushed')
    }
  });
  res.redirect('back');
});

app.get('/config', (request, response) => {
  response.set('Cache-Control', 'public, max-age=0, s-maxage=0');
  getUpdates().then((updates, ref) => {
    const updatesList = updates.val();
    response.render('index',    updatesList  );
    return;
  });
});

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

Файл index.hbs:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" type="text/css" href="/config.css">
    <title>Config Server</title>
</head>

<body>

<div class="navbar">
    {{test}}
</div>


</body>

</html>

</html>
...