編輯 好的,我設法解決了未加載的錯誤模板。這是一個 htaccess 問題。如果我將 ErrorDocument 更改為 /sub/dirs/error.html (注意缺少的 dist 檔案夾),它可以正常作業。但是它仍然沒有我真正需要作業的動態選單和自動完成搜索欄的全部功能。有什么想法嗎?
我的生產就緒 Nuxt 應用程式存在一些問題。我的 nuxt.config.js 中有以下內容
target: 'static',
generate: {
dir: '../dist',
fallback: 'error.html'
},
// The error part is solved, dynamic menus continue to be an issue
npm run generate它按預期正確生成 error.html 檔案。但是它不使用 layouts/error.vue 中的內容,并且標題中的動態選單不加載它們的資料。我確定它實際上加載了 error.html,因為我可以手動更新 HTML(標題、文本等通過 vscode)并更新。但是,如果我直接加載錯誤頁面(example.com/error.html),它實際上按預期作業,正確的 error.vue 模板按預期呈現。
一旦拋出 404,它也會嘗試加載丟失的路線。我的設定是
pages
--categories
--_cat-id
--_page-id
如果我點擊 example.com/this-page-doesnt-exist 之類的東西,它會拋出 404,但仍會加載頁面 _page-id 并運行所有代碼。這似乎不正常,我也不想這樣。我希望它只加載錯誤頁面和錯誤頁面。最后,我使用 apache/htaccess 來處理 ErrorDocument。如果我洗掉它只是使用 404 內置的 apache,這不是一個選項。我想知道重寫規則中是否有可能導致這種情況的東西。
ErrorDocument 404 /sub/dirs/dist/error.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /sub/dirs/
RewriteCond %{REQUEST_URI} !dist/
RewriteRule ^(.*)$ dist/$1 [L]
</IfModule>
如何讓我的錯誤頁面正確呈現以及來自選單等的動態內容加載?提前致謝
uj5u.com熱心網友回復:
我設法通過更新我的 htaccess 來解決根本無法加載的錯誤頁面。新的 .htaccess - 從 ErrorDocument 中洗掉 dist。
ErrorDocument 404 /sub/dirs/error.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /sub/dirs/
RewriteCond %{REQUEST_URI} !dist/
RewriteRule ^(.*)$ dist/$1 [L]
</IfModule>
編輯。我有一個動態資料的解決方法。設定時似乎沒有完全生成錯誤頁面target:static。所有其他 html 生成的頁面都是完整的頁面,但不是 error.html 頁面。我無法讓 asyncData 道具做任何事情。所以我創建了一個錯誤組件來保存在layouts/error檔案中,然后在掛載的鉤子中我像往常一樣訪問了商店
async mounted(){
await this.$store.dispatch('getStuff')
}
這最終獲取了所有資料(我覺得應該在做的時候預取npm run generate)然后我的動態內容作業了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475947.html
