為何捐款
API 瀏覽器
升級指南
NEW!
quasar.config 檔案
將專案轉換為 CLI with Vite
瀏覽器相容性
支援 TypeScript
目錄結構
命令列表
CSS 預處理器
路由
延遲載入 - 程式碼分割
資源處理
啟動檔案
預取功能
API 代理
處理 Vite
處理 process.env
使用 Pinia 進行狀態管理
使用 Vuex 進行狀態管理
程式碼檢查工具
測試與稽核
Developing Mobile Apps
Ajax 請求
開放開發伺服器給大眾
Quasar CLI with Vite - @quasar/app-vite
App Handling Assets

您會注意到專案結構中有兩個用於資源的目錄:/public//src/assets/。它們之間有什麼區別?有些是靜態資源,而另一些則由建置系統處理和嵌入。

因此,讓我們嘗試回答上面的問題。我們先來談談使用常規資源,然後我們將看看靜態資源有什麼不同。

常規資源 - /src/assets

*.vue 元件中,您的所有範本和 CSS 都由 vue-html-loadercss-loader 解析,以尋找資源 URL。例如,在 <img src="./logo.png">background: url(./logo.png) 中,"./logo.png" 是一個相對資源路徑,將由 Vite 解析為模組依賴項。

由於這些資源可能會在建置期間內聯/複製/重新命名,因此它們本質上是您的原始碼的一部分。這就是為什麼建議將 Vite 處理的資源放在 /src/assets 中,與其他原始檔放在一起。實際上,您甚至不必將它們全部放在 /src/assets 中:您可以根據使用它們的模組/元件來組織它們。例如,您可以將每個元件放在自己的目錄中,並將其靜態資源放在旁邊。

資源解析規則

相對 URL,例如 ./assets/logo.png 將被解釋為模組依賴項。它們將被替換為基於您的 Vite 輸出配置自動生成的 URL。

~ 為前綴的 URL 被視為模組請求,類似於 import 'some-module/image.png'。如果您想利用 Vite 的模組解析配置,則需要使用此前綴。Quasar 預設提供 assets 別名,因此建議您像這樣使用它:<img src="~assets/logo.png">。請注意 ‘assets’ 前面的 ~

靜態資源 - /public

根相對 URL(例如 /logo.png – 其中 ‘/’ 是您的 publicPath)或 logo.png 根本不會被處理。這應該放在 public/ 中。這些將完全不會被處理。public 資料夾的內容只是按原樣複製到可發佈資料夾中。

資源 vs 靜態資源

僅當「assets」資料夾中的檔案在您的 Vue 檔案之一中具有文字引用時,才會包含在您的建置中。「public」資料夾中的每個檔案和資料夾都會按原樣複製到您的生產建置中,無論如何。

警告

當不建置 SPA/PWA/SSR 時,/public/icons/*/public/favicon.ico 將不會嵌入到您的應用程式中,因為它們不會有任何用途。例如,Electron 或 Cordova 應用程式不需要這些檔案。

有關 Vite 的更多資訊

請閱讀 Vite 的指南 此處