由于缺少 <script> 无法看到关于页面路由但能够到达主页路由

Posted

技术标签:

【中文标题】由于缺少 <script> 无法看到关于页面路由但能够到达主页路由【英文标题】:Cannot see About page route but able to reach Home page route due to missing <script> 【发布时间】:2018-01-21 13:43:04 【问题描述】:

我似乎无法弄清楚为什么我无法访问我的关于页面。我可以去我的HomePage,但不能去我的AboutPage。当我查看开发人员工具时,在localhost:3000 中,我看到带有&lt;script type="text/javascript" src="/bundle.js"&gt;&lt;/script&gt; 的主页内容。但是,在 localhost:3000/about 我没有看到 &lt;script&gt; !它缺少捆绑包

App.js

import React from 'react';
import Header from './common/Header';
import Footer from './common/Footer';
import Switch, Route from 'react-router-dom';
import HomePage from './home/HomePage';
import AboutPage from './about/AboutPage';

class App extends React.Component 
  constructor(props, context) 
    super(props, context);
    this.state = ;
  

  render() 
    return (
      <div>
        <Header/>
        <Switch>
          <Route exact path="/" component=HomePage/>
          <Route path="/about" component=AboutPage/>
        </Switch>
        <Footer/>
      </div>
    );
  


export default App;

关于Page.js

import React from 'react';

class AboutPage extends React.Component 
  constructor(props, context) 
    super(props, context);
    this.state = ;
  

  render() 
    return(
      <div>
        about pagesdfsdf
      </div>
    );
  


export default AboutPage;

index.js

import React from 'react';
import render from 'react-dom';
import BrowserRouter from 'react-router-dom';
import Provider from 'react-redux';
import configureStore from './store/configureStore';
import App from './components/App';

const store = configureStore();

render(
  <Provider store=store>
    <BrowserRouter>
      <App/>
    </BrowserRouter>
  </Provider>,
  document.getElementById('app')
);

【问题讨论】:

你需要添加 React Router Redux :-) 你是如何在你的路由之间移动的?你的环境怎么样? @Win 只是在调查。 react-router-dom (v4) + redux。 Webpack 作为构建工具。仅使用 Express 来提供前端代码。 Django 作为 API 【参考方案1】:

&lt;BrowserRouter&gt; 需要更多设置 - 你有服务器吗?您可能希望切换到&lt;HashRouter&gt;,因为它更容易启动和运行。至少,它会解决您现在遇到的问题并使您的代码正常工作。

这里的差异参考:https://medium.com/@pshrmn/a-simple-react-router-v4-tutorial-7f23ff27adf

【讨论】:

你认为我需要react-router-redux 像建议的那样吗?我正在处理 redux 不,没有它你应该没问题。【参考方案2】:

我假设您正在为您的应用程序使用 webpack。 因此,为了使 BrowserRouter 正常工作,您必须在 webpack.config.js 中提供以下配置

在输出部分

output: 
    filename: 'app.bundle.js',
    path: path.resolve(__dirname, 'dist'),
    publicPath : '/' // set the public path to root
  

在服务器部分

devServer: 
    hot : true,
    contentBase: path.join(__dirname, "dist"),
    historyApiFallback : true,  // set the historyApiFallback to true                  
    compress: true,
    port: 8080
  

【讨论】:

以上是关于由于缺少 <script> 无法看到关于页面路由但能够到达主页路由的主要内容,如果未能解决你的问题,请参考以下文章

XSS挑战20关

Spring Boot / Tomcat,“由于缺少ServletWebServerFactory bean而无法启动ServletWebServerApplicationContext”

html中内部放<script>可以运行,而把js放到外部就不能执行,代码如下,请大神指点!

由于 $(document).ready,Jquery 函数无法正常工作

vs2010由于缺少调试目标“无法开始调试,请生成项目并重试 怎么解决?

使用 Typescript 在 Vue 3 中的函数上缺少返回类型