我有一個位於Laravel 5.4框架上的反應應用程序。 我遇到的問題是,在頁面上刷新一個URL,例如https://app.com/ {url}/{slug}會中斷應用程序。使用React/Laravel應用程序刷新頁面打破應用程序返回空白頁面
這裏是我的路由器組件,它坐落在App.js
<Router>
<div className="App__container container-fluid">
<Navigation />
<Switch>
<Route path="/films" component={FilmsContainer}/>
<Route path="/films/:slugname" component={FilmPage}/>
</Switch>
</div>
</Router>
通過瀏覽器刷新頁面時顯示FilmsContainer部件工作正常,因爲我有路線Laravel配置返回主佈局無論何時通過此代碼點擊任何網絡路線時,都會保存React應用程序。
Route::get('{slug}', function() {
return view('main');
})->where('slug', '(?!api)([A-z\d-\/_.]+)?');
然而,問題來的時候這個鏈接組件被擊中,
<NavLink className="btn btn-success" to={`/films/${slugName}`}>View Film</NavLink>
在第一次點擊,反應路由器成功地使正確的URL的組成部分,例如:https://www.app.com/films/this-film-name。
然而,當我刷新這個網址的頁面,該反應應用程序中斷, 返回在JavaScript控制檯中的錯誤:
Uncaught SyntaxError: Unexpected token < app.js:1
當刷新上匹配的任何URL頁面的www.app.com/{route}/{slug} 模式,應用程序中斷並且不顯示任何內容,我所看到的只是瀏覽器中的空白頁面。
我使用browserHistory也設置在Laravel網絡路由文件等航線,如嘗試:
Route::get('films/{slug}', function() {
return view('main');
})->where('slug', '(?!api)([A-z\d-\/_.]+)?');
嘗試和匹配的路由分配額外參數和服務保存的主HTML文件應用。
這似乎沒有工作,我有點困惑,這是一個Laravel的問題?我有沒有反應路由器配置不正確?任何意見將不勝感激,謝謝!
正如我在問題中指出的,我已經有了所有路線都返回索引文件的地方。 –