为什么 add firebase serve 命令会向 url 添加一些附加信息?
Why does add firebase serve command some additional info to url?
我的问题是关于在本地主机(端口:5000、5001)上测试我的代码。我在终端 windows:
中使用下面的命令
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 工作得很好。我不知道为什么 functions:app URL 有一些额外的部分?
后端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
以斜杠开头的部分 URL 被解释为相对于原始 URL 主机的路径。这些有时称为 "absolute path reference"。它们有效地擦除 url 的整个路径并从您提供的路径重新开始。
如果您希望重定向 URL 构建现有路径,您只需将所需的路径部分附加到原始路径(在 req.path
中找到)
res.redirect(req.path + '/login');
这应该将路径组件添加到现有 URL 的末尾,而不是删除现有路径。
我的问题是关于在本地主机(端口:5000、5001)上测试我的代码。我在终端 windows:
中使用下面的命令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 工作得很好。我不知道为什么 functions:app URL 有一些额外的部分?
后端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
以斜杠开头的部分 URL 被解释为相对于原始 URL 主机的路径。这些有时称为 "absolute path reference"。它们有效地擦除 url 的整个路径并从您提供的路径重新开始。
如果您希望重定向 URL 构建现有路径,您只需将所需的路径部分附加到原始路径(在 req.path
中找到)
res.redirect(req.path + '/login');
这应该将路径组件添加到现有 URL 的末尾,而不是删除现有路径。