Почему при добавлении команды firebase serve в URL появляется дополнительная информация? - PullRequest
0 голосов
/ 20 сентября 2018

Моя проблема связана с тестированием моих кодов на локальном хосте (порты: 5000, 5001).Я использую команду ниже в окнах терминала:

sudo firebase serve

И она дает ссылки после готовности:

hosting[helloapp]: Serving hosting files from: public
hosting[helloapp]: Local server: http://localhost:5000
functions: app: http://localhost:5001/helloapp/us-central1/app

Кажется, все в порядке.Но когда я пробую функции, некоторые URL-адреса не работают правильно.Например: если в обратном пути URL-адреса пропал код перенаправления, «helloapp / us-central1 / app».URL-адрес хостинга работает хорошо .. Я не знаю, почему в функциях: URL-адрес приложения есть какая-то дополнительная часть?

Backend index.js

app.use('/', express.static(path.join(__dirname, '../public'))); 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, './app_server/views')); 

Код перенаправления:

catch(error => {
  console.log('cant access', error);
  res.redirect('/login');
}    

Проблема

URL-адрес перед перенаправлением:

http://localhost:5001/helloapp/us-central1/app

URL-адрес после перенаправления:

http://localhost:5001/login

URL, я ожидаю

http://localhost:5001/helloapp/us-central1/app/login

1 Ответ

0 голосов
/ 21 сентября 2018

Частичные URL-адреса, начинающиеся с косой черты, интерпретируются как путь относительно хоста исходного URL-адреса.Их иногда называют «ссылкой на абсолютный путь».Они эффективно стирают весь путь URL и начинают заново с указанного вами пути.

( Подробнее об этом )

Если вы хотите, чтобы ваш URL перенаправлениячтобы построить существующий путь, вы можете просто добавить части пути, которые вам нужны, к исходному пути (находится в req.path)

res.redirect(req.path + '/login');

Это должно добавить компонент пути кконец существующего URL, а не стирание существующего пути.

...