這篇文章主要講解了“react刷新找不到頁(yè)面如何解決”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“react刷新找不到頁(yè)面如何解決”吧!
創(chuàng)新互聯(lián)公司成立于2013年,先為舒城等服務(wù)建站,舒城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為舒城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
react刷新找不到頁(yè)面的解決辦法:1、找到并打開(kāi)“app.jsx”文件;2、在“app.jsx”里面定義路由協(xié)議的時(shí)候通過(guò)“class App extends Component {render() {return (<Layout className="layout"><Router><div><Nav /><MinContent /></div>...”代碼定義即可。
react部署完以后,刷新頁(yè)面會(huì)報(bào)錯(cuò)找不到視圖
今天上午部署完項(xiàng)目以后點(diǎn)擊路由都可以跳轉(zhuǎn),但是在相應(yīng)的路由刷新的時(shí)候卻報(bào)錯(cuò)了。
Failed to lookup view "error" in views directory
項(xiàng)目在本地的時(shí)候是可以正常使用的,單是為什么部署到服務(wù)器上以后刷新它就報(bào)錯(cuò)。無(wú)法找到對(duì)應(yīng)的視圖了呢?
首先排查了noded的配置文件。因?yàn)槲沂前裷eact的項(xiàng)目npm run build以后,把build后的文件放在node的public文件里面。這樣啟動(dòng)后端node bin/www以后,node就可以讀取public里面的文件。然后開(kāi)始查看node的app.js文件,文件里面都是配置好的
app.set('views', path.join(__dirname, 'views'));
app.engine('.html',require('ejs').__express);
// app.set('view engine', 'jade');
app.set('view engine', 'html');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public'))); //這句話就是express會(huì)讀取public里面的靜態(tài)文件
后端沒(méi)有錯(cuò)誤就開(kāi)始查看前端的文件
既然是路由路徑不對(duì)我就查找路由相關(guān)的信息,然后就找到答案了。是因?yàn)槲沂褂玫氖?/p>
BrowserRouter
錯(cuò)誤原因:
客戶端路由和服務(wù)端路由是有區(qū)別的,你在瀏覽器內(nèi)可以由首頁(yè)跳轉(zhuǎn)到其他路由地址,是因?yàn)檫@是由前端自行渲染的,你在React Router定義了對(duì)應(yīng)的路由,腳本并沒(méi)有刷新網(wǎng)頁(yè)訪問(wèn)后臺(tái),是JS動(dòng)態(tài)更改了location。
當(dāng)你刷新時(shí),你首先是訪問(wèn)的后臺(tái)地址,然后返回的頁(yè)面內(nèi)加載了React代碼,最后在瀏覽器內(nèi)執(zhí)行;也就是說(shuō)如果這個(gè)時(shí)候報(bào)404,是因?yàn)槟愫笈_(tái)并沒(méi)有針對(duì)這個(gè)路由給出返回HTML內(nèi)容,也談不上執(zhí)行React Router了。
使用HashRouter,不要使用BrowserRouter,這樣所有的請(qǐng)求都會(huì)定位到index.html這一個(gè)頁(yè)面,服務(wù)器端也不需要任何配置了。
解決方法 :
在app.jsx里面定義路由協(xié)議的時(shí)候可以如下這個(gè)定義:
import React, { Component} from 'react';
import { HashRouter as Router } from "react-router-dom";
import Nav from './component/Menu/Menu';
import FootContent from './component/Footer/Footer';
import MinContent from './component/content/mainContent';
import {Layout} from 'antd';
class App extends Component {
render() {
return (
<Layout className="layout">
<Router>
<div>
<Nav />
<MinContent />
</div>
</Router>
<FootContent />
</Layout>
);
}
}
export default App;
感謝各位的閱讀,以上就是“react刷新找不到頁(yè)面如何解決”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)react刷新找不到頁(yè)面如何解決這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
名稱欄目:react刷新找不到頁(yè)面如何解決
網(wǎng)頁(yè)網(wǎng)址:http://aaarwkj.com/article22/gjdscc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站維護(hù)、域名注冊(cè)、定制開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)