2017-07-15 95 views
0

我的後端是python + flask,前端是vuejs。帶燒瓶後端的Vue.js url路由

我的路線:

在燒瓶

,我只有2路線:

  • /

但在vuejs的路線:

  • /
  • /搜索
  • /約
  • /接觸

我遇到的問題是這樣的:

當我訪問myname.com/search

訪問在本地開發

0.0.0.0:8001/search 

這是好的

訪問服務器:

myname.com/search 

它給我404,因爲這是不是在瓶中的路線

我想我知道爲什麼會這樣,但我不知道如何解決它,等待一些幫助。

+1

如果你正在使用'模式:「歷史」'你VUE路由器,你將服務器配置爲與歷史模式下工作? –

回答

1

正如the documentation for vue-router提到:

使用歷史模式下,URL看起來 「正常」,例如http://oursite.com/user/id。美麗!

雖然我們的應用程序是單頁客戶端應用程序,但沒有正確的服務器配置,如果用戶直接在瀏覽器中訪問http://oursite.com/user/id,將會出現404錯誤。現在這很醜陋。

不用擔心:要解決該問題,您只需將簡單的全部備用路由添加到您的服務器。如果該網址與任何靜態資源都不匹配,它應該與您的應用所在的頁面一樣提供相同的index.html頁面。再次美麗!

所以看起來你需要配置你的服務器來正確處理這些請求,否則你的URL看起來就不那麼「正常」(不使用散列),仍然能夠直接鏈接到該頁面。


在一定程度上相關的例子,你會發現,如果你使用Gmail(一個單頁的應用程序,就像你正在構建的),鏈接到設置頁面是不是一個「正常「鏈接,而是列出散列之後訪問的特定頁面(#):https://mail.google.com/mail/u/0/#settings/general


This GitHub project,這是與從VUE路由器文檔,給人一個什麼樣的瓶服務器可能需要做什麼來處理正在使用「正常」的URL傳入的請求一個相當不錯的概述:

  1. 攔截傳入的請求。
  2. 檢查URL以確保它沒有請求靜態文件。
  3. 重定向/重寫請求的URL,以便將其路由到正確的端點。

相關SO問題:Vue Router return 404 when revisit to the url

+0

非常感謝。它解決了。 – tim