Learnnext-5 :clean urls with Route Masking

這一節(jié)講的是如何將路由屏蔽掉并顯示成我們想要的url效果。

在next/link 的link組件當(dāng)中,有一個(gè)as屬性用于屏蔽原有的url并且展示你想要的url:

import Layout from '../components/MyLayout.js'
import Link from 'next/link'

const PostLink = (props) => (
  <li>
    <Link as={`/p/${props.id}`} href={`/post?title=${props.title}`}>
      <a>{props.title}</a>
    </Link>
  </li>
)

export default () => (
  <Layout>
    <h1>My Blog</h1>
    <ul>
      <PostLink id="hello-nextjs" title="Hello Next.js"/>
      <PostLink id="learn-nextjs" title="Learn Next.js is awesome"/>
      <PostLink id="deploy-nextjs" title="Deploy apps with Zeit"/>
    </ul>
  </Layout>
)

然后你會(huì)看到url確實(shí)變成了你想要的效果。
但是這里又出現(xiàn)其他問(wèn)題了: 在你跳轉(zhuǎn)過(guò)去的時(shí)候,你reload頁(yè)面,就會(huì)發(fā)現(xiàn)頁(yè)面上出現(xiàn)了404提示

image.png

這是因?yàn)槲覀冊(cè)趐ages目錄下沒(méi)有p/hello-nextjs這個(gè)頁(yè)面,所以服務(wù)器找不到這個(gè)頁(yè)面,就報(bào)了404。
這樣的情況,我們當(dāng)然不能直接就拿去生產(chǎn)環(huán)境,我們必須要修復(fù)這個(gè)bug。
下一節(jié)講解如何在server當(dāng)中解決這個(gè)問(wèn)題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • 22年12月更新:個(gè)人網(wǎng)站關(guān)停,如果仍舊對(duì)舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,390評(píng)論 22 257
  • 已經(jīng)同步到gitbook,想閱讀的請(qǐng)轉(zhuǎn)到gitbook: Django 1.10 中文文檔 Writing you...
    leyu閱讀 705評(píng)論 1 1
  • 本內(nèi)容為《用Python寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)》書(shū)籍內(nèi)容,有興趣的讀者可以購(gòu)買(mǎi)本書(shū),本章的代碼皆可在Python3中運(yùn)行。為了...
    海人為記閱讀 2,371評(píng)論 0 5
  • 突然發(fā)現(xiàn)自己已經(jīng)很久沒(méi)有寫(xiě)作的習(xí)慣了,現(xiàn)在的水平真的是想說(shuō)一句話(huà)都要想上半天才能組織好語(yǔ)言。 下了一夜的雨,剛醒。...
    李大想想閱讀 595評(píng)論 0 0

友情鏈接更多精彩內(nèi)容