【问题标题】:Deploying React app, Router is not correct部署 React 应用,Router 不正确
【发布时间】:2019-08-12 19:45:52
【问题描述】:

我正在开发 React 应用程序并尝试在 IIS 上进行部署。

它工作正常,但路由器显示不正确。

当我点击链接“测试”时,我的预期路径是“http://localhost/test/TestRouter/”,但它显示的是“http://localhost/TestRouter/”。

这是我的代码:

App.js

import React from 'react';
import logo from './logo.svg';
import './App.css';
import Test from './Test';
import { BrowserRouter as Router, Route, Link } from "react-router-dom";

function App() {
  return (
    <div className="App">
      <Router>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/TestRouter/">Test</Link>
            </li>

          </ul>
        </nav>

        <Route path="/TestRouter/" component={Test} />
      </div>
    </Router>
    </div>
  );
}

export default App;

Test.js

import React from 'react';

class Test extends React.Component {

    constructor(props) {
        super(props);
    }

    render() {
        return (
            <div>
                <p>Test</p>              
            </div>
        );
    }
}

export default Test;

package.json:

"homepage": "/test/",

然后我在 IIS 上部署,在 Default Web Site/test 下

我的问题是当我点击“测试”链接时,网址现在显示为“http://localhost/TestRouter/”。

我的期望是 url 应该显示 'http://localhost/test/TestRouter/'。

这里有人可以帮我纠正路由器吗?

先谢谢你了。

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    您需要将basename添加到路由器:

     <Router basename='/test'>
    

    【讨论】:

    • 奇怪,我唯一能想到的就是除了basename之外,从你的url中删除所有尾部斜杠:"homepage": "/test"&lt;Route path="/TestRouter/" component={Test} /&gt;等。
    • 对不起,我添加到Route,它应该添加到Router。它现在有效!谢谢。
    【解决方案2】:

    path="test/TestRouter"

    有直接填充路径的选项

    <Router>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/test/TestRouter">Test</Link>
            </li>
          </ul>
        </nav>
        <Route path="test/TestRouter" component={Test} />
      </div>
    </Router>
    

    和选项喜欢这里的评论

    <Router basename='/test'>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/TestRouter">Test</Link>
            </li>
          </ul>
        </nav>
        <Route path="/TestRouter" component={Test} />
      </div>
    </Router>
    

    你确定你按照它写的那样尝试了吗?

    【讨论】:

    • 所以 url 现在是正确的,但我的组件 Test 没有出现
    猜你喜欢
    • 1970-01-01
    • 2017-11-14
    • 2022-06-26
    • 2016-09-28
    • 1970-01-01
    • 2019-01-22
    • 2021-06-21
    • 2020-02-03
    • 1970-01-01
    相关资源
    最近更新 更多