描述
原本在hugo上面放文章,是每篇文章一個資料夾,在其中放文章和會用到的圖片。每個文章資料夾都放在content/posts/
。
content/posts/
├── post1
│ └── post1.md
│ └── img1.jpg
├── post2
│ └── post2.md
│ └── img2.jpg
├── post3
│ └── post3.md
│ └── img3.jpg
因為覺得全部文章直接用資料夾名稱排序,覺得未來會變得很混亂,並且不好找尋文章位置,所以改成以下的結構:使用日期當主資料夾名稱
。
雖然也是可以在文章資料夾
名稱加上日期前綴來區分,但感覺還是會很亂。所以開始研究page bundle怎麼處理,試著將結構改成這樣。
P.S. 在2024年8月的時候又改回hugo最原始的文章放置方式,發現全部文章放在一起,其實也不會太亂(是我寫太少文章了)。 並且使用日期當第一層資料夾名稱,我反而沒辦法一眼看出這裡面放的文章是什麼文章
content/posts/
├── 2022-08-02
│ └── post1
│ └── post1.md
│ └── img1.jpg
│ └── post2
│ └── post2.md
│ └── img2.jpg
├── 2022-09-02
│ └── post3
│ └── post3.md
│ └── img3.jpg
問題
看到跑出來的網頁上,載入圖片404的網址居然是還會增加一個文章名稱的資料夾,然後才存取圖片。以上面的例子來看, 打開網頁 post1頁面,網址會是domain/posts/2022-08-02/post1/post1/
而圖片是呼叫domain/posts/2022-08-02/post1/post1/img1.jpg
可是實際上到build出來的public裡面去看,這一個頁面的結構居然是長這樣
├── 2022-08-02
│ └── post1
│ └── post1.md
│ └── img1.jpg
│ └── post1
│ └── index.html
解法
因為查到的所有資料,上面寫的md都命名為index
,所以試著把post1.md
改名為index.md
,一切就正常了,而此時public
裡面的資料結構變成長這樣。
├── 2022-08-02
│ └── post1
│ └── post1.md
│ └── img1.jpg
│ └── index.html
看起來可能是因為bundle是抓index.md
這個關鍵字的來製作頁面,如果沒有這個檔案,會用現有的*.md
的檔案,各自建立一個它名稱的資料夾,然後在裡面建立index.html。所以原本的做法才會長成奇怪的結構。