[英]Can't goto SPA page route when typing route manually in Rails
到目前為止,我做了以下設置:
app
目錄中創建 Vue 項目作為目錄pubic/spa
目錄中將構建時的 Vue 項目配置為 output,即在 static 文件中提供 SPA 應用程序spa/about
),Rails 會拋出路由錯誤 我想我需要一種方法來告訴 Rails 每次路由前綴為spa
時始終重定向到 SPA 應用程序
有沒有辦法配置 rails 來做到這一點?
像這樣的東西(在route.rb
中)
# every URL prefix is with spa, redirect to static file `spa/index.html`
get "spa#*" => "spa#*"
# or maybe like this?
prefix :spa # there's no `prefix` method option obviously
我通過一些挖掘和測試弄明白了。 以下是配置 Rails 的方法:
class SpaController < ApplicationController
def index
render file: "#{Rails.root}/public/spa/index.html", layout: false
end
end
route.rb
在route.rb
文件中,添加以下行
get 'spa/*path', :to => 'spa#index'
通配符*path
用於捕捉任何“動作”,而spa
是我一開始所希望的前綴。
例如:
http://localhost:3000/spa/about
http://localhost:3000/spa/home
所有這些路由都將重定向到我的SpaController
中的相同操作index
。 對於 Vue-router,它知道如何從那里處理路由。
我沒有在其他 SPA 框架(例如 Angular)上嘗試過相同的解決方案,但我認為該解決方案也可以與它們一起使用。
開心前端程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.