我使用Firebase托管来托管我的网站。最近,我实现了一个证明概念网站,该网站通常仅使用index.html和style.js进行操作。
功能信息:
一个HTML + JS文件,用于托管整个小型网站。我能够使用javascript请求修改html正文内容。但是问题在于浏览器中的重新加载按钮。例如,如果我单击“关于”菜单按钮,那么JS函数将从后端获取并显示有关的数据。显示网址为https://some.domain/about
。
现在,如果我刷新页面,
firebase.json
中使用了以下重定向。但是结果是https://some.domain
而不是https://some.domain/about
的内容页面正确,例如按下“关于”按钮时显示的内容。代码:
history.pushState(null, null,
/大约);
手动更改URL 重定向firebase.json
“重定向”:[{ “ source”:“ / about”, “目的地”:“ /”, “类型”:301 }]
我想同时保留动态功能,我想在地址栏中保留特定的URL以及该特定URL的内容。
如何完成?
答案 0 :(得分:2)
使用rewrites:
当浏览器尝试打开指定的源URL时,将在目标URL处提供文件的内容。
"hosting": {
// ...
// Add the "rewrites" attribute within "hosting"
"rewrites": [ {
// Serves index.html for requests to files or directories that do not exist
"source": "**",
"destination": "/index.html"
}, {
// Serves index.html for requests to both "/foo" and "/foo/**"
// Using "/foo/**" only matches paths like "/foo/xyz", but not "/foo"
"source": "/foo{,/**}",
"destination": "/index.html"
}, {
// Excludes specified pathways from rewrites
"source": "!/@(js|css)/**",
"destination": "/index.html"
} ]
}