所以我已經在我的gatsby-node.js檔案中實作了一個通配符路徑:
exports.onCreatePage = async ({ page, actions }) => {
const { createPage } = actions
if (page.path.match(/^\/my-path/)) {
page.matchPath = "/my-path/*"
createPage(page)
}
}
當我在本地運行站點(開發中)時,這很好用。即,如果我提供/my-path/anything123或/my-path/asdfasdfasdf,兩者都將導致我在 Gatsby 專案中創建的組件的渲染pages/my-path.tsx。
現在我們來解決我的問題。當我將我的網站部署到 Netlify 時,我沒有得到與開發中相同的行為。可以在 Netlify 中通過重定向或重寫來處理這樣的行為嗎?我不想失去在之后的部分內容/my-path/,因為在現實中,我用它來決議一個ID,即,如果在瀏覽器的URL是/my-path/123,我希望能夠看到123的window.location.href,并分析其與中的一些邏輯my-path.tsx。
我希望這很清楚。感謝任何可以幫助或指導我朝著正確方向前進的人!
uj5u.com熱心網友回復:
當然,寫完這一切后,答案就變得清晰了……我試過了,它奏效了!對于我提供的示例,以下重定向將適用于您的netlify.toml檔案:
[[redirects]]
from = "/my-path/*"
to = "/my-path"
status = 200
force = true
因此,它本質上必須與您在 中定義的規則 1:1 匹配gatsby-node.js。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/368428.html
