我目前正在构建一个URL缩短器,并在其前端使用React。这是我的域名(假设example.com
(链接到使用 Firebase Hosting 的地方。
我在试图弄清楚服务的重定向部分时有点挣扎,因为我希望这个重定向是"HTTP 本机"; 它不应该要求JS重定向,只是一个普通的301重定向。
缩短的 URL 如下所示:example.com/go/:linkId
。
当用户单击缩短的链接时,我的服务器应收到请求,找出链接到缩短 URL 的 ID 的 URL,并重定向到原始链接。
由于我不想涉及 JS,因此我尝试在firebase.json
中使用redirects
设置。起初,它看起来很有希望只是使用:
"redirects": [
{
"source": "/go/:linkId",
"destination": "<SERVER_URL>/go/:linkId"
}
]
这种方法有两个问题:
- 它不适用于本地主机,因为在运行 Webpack 开发服务器时不考虑 (AFAIK(
firebase.json
。 - 无论如何,开发和生产环境都有不同的服务器 URL。我不想对 URL 进行硬编码,因为它不会让我在它们之间分开。
我正在考虑重定向到一个go.js
文件或将存在于带有index.html
的 dist 文件夹中的东西,但它不会解析为节点.js文件。
如果你有任何想法如何解决这个问题,我很高兴听到。
谢谢!
当您使用 Firebase CLI 时,重定向将在本地工作,即通过运行firebase serve
.如果需要预处理源以获取最终分发,请在本地执行此操作,然后对该预处理步骤的输出调用firebase serve
。