我刚刚开始在Firebase上托管一个Web应用程序。
firebase cli
(firebase-tools)的自动设置在我的公用文件夹中创建了一个404.html
文件。
但是我不想看到自定义的404错误页面,也不想看到Firebase的默认页面。
我想将所有404重定向到起始页,以便无论如何都要初始化该应用程序。 (我在webpack-dev-server
上进行的本地设置工作正常)
一种解决方法是将index.html
中的相同内容放入404.html
中。但这导致维护增加一倍。
我在https://firebase.google.com/docs/hosting/url-redirects-rewrites上找到了一些有关重定向配置的信息。
但是无法重定向404错误类型。
无法使用.htaccess
文件。
我缺少正确的位置来更改此行为,无论是在我的firebase.json
文件中还是在https://console.firebase.google.com/文件中?
答案 0 :(得分:1)
不确定这是否对您有用,我从来没有用.htaccess
做任何事情,但就我而言,我总是用这种方式修复它:
您可以在firebase.json
文件的rewrites部分中将通配符路由作为最后一个路由,因此任何先前未声明的路由都将匹配:
"rewrites": [
{
// route info here
},
{
// another route
},
{
// If it makes it here, it didn't match any previous routing
// Match all routes that get to this point and send them to the home page.
"source": "**",
"destination": "/index.html"
}
]
答案 1 :(得分:0)
如果您不想留下原始/不存在的网址(例如https://example.com/asdf),则可以修改404.html源并将其替换为js重定向。
public class EventPresenter implements EventContract.Presenter{
private EventContract.View eventView;
private EventContract.Model eventModel;
public EventPresenter(EventContract.View eventView) {
this.eventView = eventView;
eventModel = new EventModel();
}
@Override
public void onDestroy() {
this.eventView = null;
}
@Override
public void requestDataFromServer() {
if(eventView != null){
eventView.hideProgress();
}
eventModel.getEventInfo(this);
}
}