首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >部署React应用程序,路由器不正确

部署React应用程序,路由器不正确
EN

Stack Overflow用户
提问于 2019-08-12 10:29:54
回答 2查看 75关注 0票数 0

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

它工作良好,但路由器没有正确显示。

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

这是我的代码:

App.js

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
"homepage": "/test/",

然后在IIS上部署默认网站/测试

我的问题是,当我点击‘测试’链接,url现在显示'http://localhost/TestRouter/‘。

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

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

谢谢你的进阶。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-12 10:32:49

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

代码语言:javascript
运行
复制
 <Router basename='/test'>
票数 1
EN

Stack Overflow用户

发布于 2019-08-12 11:45:52

Path=“测试/测试路由器”

有直接填充路径的选项。

代码语言:javascript
运行
复制
<Router>
  <div>
    <nav>
      <ul>
        <li>
          <Link to="/test/TestRouter">Test</Link>
        </li>
      </ul>
    </nav>
    <Route path="test/TestRouter" component={Test} />
  </div>
</Router>

和选项,如这里的评论

代码语言:javascript
运行
复制
<Router basename='/test'>
  <div>
    <nav>
      <ul>
        <li>
          <Link to="/TestRouter">Test</Link>
        </li>
      </ul>
    </nav>
    <Route path="/TestRouter" component={Test} />
  </div>
</Router>

你确定你按它写的试过了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57459560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档