我的所有路由都在资源之前的主机之后包含一个标签,host.com/#/resource,知道我可能做了什么导致这个吗?
All of my routes include a hashtag after the host before the resource, host.com/#/resource, any idea what I might have done to cause this?
我的管理员和资源配置方式的一些示例:
<Admin
dashboard={Dashboard}
dataProvider={dataProvider}
appLayout={MainLayout}
title="Removed So I Don't Get Fired"
>
<Resource name="apples" list={ApplesList} />
<Resource name="pears" list={PearsList} show={PearShow} />
<Resource name="peaches" list={PeachesList} create={PeachesCreate} edit={PeachesEdit}/>
</Admin>
有效的路线是:
host.com/#/apples
host.com/#/pears
host.com/#/pears/pearnumber/show
等...
如果我尝试访问:
host.com/apples
host.com/pears
host.com/pears/pearnumber/show
浏览器重定向到:
host.com/apples#/
host.com/pears#/
host.com/pears/pearnumber/show#/
如果您需要任何其他信息,请告诉我。
基本上是为了历史。您可以找到更多信息 here 对于您尝试访问的路线,可能未被识别,因此路线后会出现 #。它假定路由是主机路由。不确定最后这个。
这听起来与 相似。我不是 React 专家,但 PushState API 路由的一个重要组成部分是页面必须将所有路由基于基本 URI。如果未指定基本 URI,则库将倾向于使用访问的原始 URI 作为基本 URI。
如果您使用的是 PushState API,那么我建议您将 <base href="/" />
添加到您的页面 <head>
。这将向您的页面表明所有路径都是相对于主机根目录的。但是,看起来您只是在使用基于散列的路由(尽管仍然将 host.com
的所有子路径别名为您的页面)。基于哈希的路由无法更改 URI 路径,因此您将无法使用当前设置将 host.com/apples
重定向到 host.com/#/apples
。
我建议更改路由策略以改为使用 PushState API:https://github.com/marmelab/react-admin/blob/master/docs/Admin.md#history。这与上面提到的 <base>
标记相结合,将允许您的页面使用根 URI 作为其基本 URI,并在直接导航到路由时修复路由。
上面的link建议使用history
npm包创建历史配置(在本例中使用createBrowserHistory
函数),然后将其附加到Admin
节点如下:
import createHistory from 'history/createBrowserHistory';
const history = createHistory({basename: '/'});
const App = () => (
<Admin history={history}>
...
</Admin>
);
我的管理员和资源配置方式的一些示例:
<Admin
dashboard={Dashboard}
dataProvider={dataProvider}
appLayout={MainLayout}
title="Removed So I Don't Get Fired"
>
<Resource name="apples" list={ApplesList} />
<Resource name="pears" list={PearsList} show={PearShow} />
<Resource name="peaches" list={PeachesList} create={PeachesCreate} edit={PeachesEdit}/>
</Admin>
有效的路线是:
host.com/#/apples
host.com/#/pears
host.com/#/pears/pearnumber/show
等...
如果我尝试访问:
host.com/apples
host.com/pears
host.com/pears/pearnumber/show
浏览器重定向到:
host.com/apples#/
host.com/pears#/
host.com/pears/pearnumber/show#/
如果您需要任何其他信息,请告诉我。
基本上是为了历史。您可以找到更多信息 here 对于您尝试访问的路线,可能未被识别,因此路线后会出现 #。它假定路由是主机路由。不确定最后这个。
这听起来与
如果您使用的是 PushState API,那么我建议您将 <base href="/" />
添加到您的页面 <head>
。这将向您的页面表明所有路径都是相对于主机根目录的。但是,看起来您只是在使用基于散列的路由(尽管仍然将 host.com
的所有子路径别名为您的页面)。基于哈希的路由无法更改 URI 路径,因此您将无法使用当前设置将 host.com/apples
重定向到 host.com/#/apples
。
我建议更改路由策略以改为使用 PushState API:https://github.com/marmelab/react-admin/blob/master/docs/Admin.md#history。这与上面提到的 <base>
标记相结合,将允许您的页面使用根 URI 作为其基本 URI,并在直接导航到路由时修复路由。
上面的link建议使用history
npm包创建历史配置(在本例中使用createBrowserHistory
函数),然后将其附加到Admin
节点如下:
import createHistory from 'history/createBrowserHistory';
const history = createHistory({basename: '/'});
const App = () => (
<Admin history={history}>
...
</Admin>
);