2026年2月24日 星期二

HD鬼故事N+6最終章

看標題應該想得到,只是沒想到來得這麼快。


就在過完年的第一天,小弟我就被火了。這故事怎麼開始的呢?就讓我娓娓道來。


這次故事接著第五集的後面開始。那位新進(要取代我的)工程師(後面就叫他新主管吧),在大概 review 完當時的專案之後,向公司提出他需要一個半月來改善目前的狀況。


我得知這個消息時,心中還暗自嘲笑:以公司高層那種急躁的程度,應該不會接受這一個半月的空窗期吧?但沒想到小丑竟然是我自己。上面不但答應了,而且這一個半月真的沒有任何動作,就安心地讓他們慢慢看、慢慢修。這期間幾乎看不到有任何程式碼上版,整個專案就這樣放空了一個半月。


在這個同時,我也沒有閒著,我因為長時間處裡這新專案,導致舊專案累積了大量的工作,另外兩位負責的同事加我協助處裡。我同時還要到處支援其他專案(沒錯,我們公司還有很多其他的小專案,也就是從那位逛街被 fire 的學姊那繼承下來的)


至於這個重構專案,就交由那兩位新進工程師主要負責,看著他們就這樣爽過了一個半月。而且最聰明的一點是:那位新主管,在這一個半月當中就會剛好通過試用期。這幾乎是保證他能通過試用的條款。


這一個半月基本上很快就過去了,也沒見他們提交什麼成果。我想他們做的最大貢獻,就是把整個專案進行細小功能的拆分上trello。這一個半月幾乎沒什麼建樹,UI一樣被開一大堆,BUG 一樣被開一大堆啊......


最後還是回歸到之前的開發模式:

1. 工程師負責修理

2. 進行測試、測試、再測試

3. 產生並返回 bug

4. 工程師再繼續修復

......


一樣啊,只是因為卡片變小了,所以不會有為什麼被開這麼多bug的錯覺,但這問題應該要算PM頭上啊!!!!!然後這個新主管通過試用期時,公司竟然完全沒有詢問過我這個現任主管的意見!!!!!唉~算了,反正這就是他們想要的結果。

這個事情一直到大概一月中的時候,我那邊的專案忙到一個程度了。這時候發生了一件事情:


這個新主管突然生了一場大病。其實我們身為工程師,看卡片(Task card)和程式碼大概都感覺得出來,他到後期有點疲倦,甚至開始擺爛。我是怎麼看出端倪的呢?他禮拜三請病假,禮拜四沒請假,禮拜五又請病假,說他真的撐不下去了。


我想說如果你禮拜五嚴重到沒辦法工作,那禮拜四肯定也沒辦法,那你禮拜四不是白嫖嗎;再回去看他上傳的內容(Commit log),那個禮拜他沒上任何 Code,等於擺爛了一週,白嫖一週薪水。我想,專案不能順利完成總不能怪到我頭上吧?再者是他擺爛成這樣,公司都看不到嗎?


在這個時間點,因為原本一月底專案要趕著上線,PM 終於意識到進度真的不行,就請我回來支援重構專案(啊人員是你們親自調度的,這也應該算PM的鍋啊)。其實早已在一月初,我手邊的兩位同仁已經有足夠能力應付舊專案的功能開發,當時我反而沒事做。


而我一直去詢問那位新進主管,問他重構專案有沒有需要幫忙的地方。一連問了兩個禮拜,他都回答「沒有」,所以我那段時間等於放空了兩個禮拜。


之後發生了一件更搞笑的事情,那位 PM 到處去問人知不知道我在幹嘛、知不知道 Jac 在幹嘛。他問遍了所有人,甚至問到財務都來問我底下的工程師。但兩個人問來問去就是不來問我本人。


我組員也反問他:「為什麼不直接去問本人?」


結果那位 PM 回覆:「這是我個人想要了解他在做什麼,好安排進度,不是上面的意思,我怕直接問他,他會多想。」


你知道嗎,我此刻信以為真了。


總之我被要求要開始支援專案,我跟另外兩位同仁把舊專案的任務全部完成,就投入這一個專案中。記得當時有新增 10 個任務,他們一人一張,最後我一個人就完成了 6 張。而且 bug 超少。我想說這應該也是我的加分項。論規模,這少也是他們的三倍


接著,事情來到了二月初。二月初的時候,這位新進的工程師打電話給我。他跟我說,其實早在一月中時,PM 就曾問他:「要讓他(指我)留到什麼時候?」


我聽了覺得超級傻眼。這位新主管現在明顯在擺爛,難道你們都看不出來嗎?竟然還反過來問他要讓我留到什麼時候。


當時那位新主管跟我說,這幾個月運作下來,他也知道這間公司很有問題,所以他不太想接主管。我聽完後表示理解,但基於保護團隊的立場,我建議他要跟 PM 講清楚,一方面也是為了保護我自己,你大不了是一走,但一次走兩個人對團隊很傷。


我的私心是:如果他真的不想接,或許我就可以留下來繼續接手。但我不知道他後來到底有沒有去說,因為我還來不及驗證,事情就發生了。


   因為他當時也不想善後,所以希望讓我留得越久越好。當時開出的日期是一月底,但他跟我提這件事時已經是二月初了,我就想說這一關應該是過了,公司應該有看到我的努力。


   接著開心過尾牙,然後接著過年。那過完年,最大的轉折就開始了。開工第一天,早上我還在處理自己的私事,正中午想說要開始辦正事了,就接到財務的訊息說要通電話,時間還挑得真好。我當下就警覺到似乎不太妙,果然是收到要資遣的消息。


對方還詢問我知不知道被資遣的原因。我當然不能說是因為我知道上面很討厭我,所以只回說不知道。他接著說:「你去年出了很多包巴拉巴拉,所以公司找了人要來取代你。公司當然也想過要不要給你機會轉為一般工程師,但你自己想想,公司給了你多少次機會,你都沒有好好把握。」


我心裡的 OS 是:我一個人的進度是其他人的六倍。先不說主管到底要不要寫 code,光是我的效率碾壓其他人,我就不知道你們到底有什麼好說嘴的,且詢問我在幹嘛根本不是PM個人行為,這件事肯定也上報了,而且我一直有去要工作啊,是他(新主管)不給,幹又算我的了。但,既然木已成舟,我覺得也沒必要跟財務爭辯,畢竟他也只是傳話的,並非決策層,就想說算了、接受吧。


理所應當我就把手上的所有任務和資料全部交接出去,想說應該就沒我的事了。


但我想到我的假還剩下一大堆,而且他通知我只做到月底。要知道那天已經是 2 月 23 號中午了,這個月只剩下四個上班日,等於我只剩下三天半的時間可以找工作,不然就會進入待業狀態。


我覺得這件事真的很扯。他說老闆是為了不破壞我過年的心情所以才現在講,但當年那個台灣主管被 fire 時,至少還給了一個月的時間交接並讓他找工作。現在他媽的只給我三天半,我真的不知道能幹嘛。我想說好聚好散,接下來三天也不打算跟公司請好請滿,就意思意思請了一天假。趁著這一天,我跟老婆約好去看電影。順帶額外推薦一下,《陽光女子合唱團》真的大推,絕對能治好乾眼症。


回到主線,在我去看電影的時候,手機訊息就開始狂跳。在關靜音之前,我看到他們決定在這個時間點讓專案上線。


.....本來想說點什麼,但算了,反正他們也沒打算尊重我。我身為這個專案最初的創作者與主管,負責整個前端維運的部分,他們卻完全不不在意專案的穩定度了。既然如此,我也沒什麼好說的,就讓他們自己去處理。


我把通訊軟體全部設為靜音,過了一整天舒爽的日子。直到 2 月 25 號,也就是今天,通訊軟體裡的訊息依樣狂跳。我仔細看了一下,原來不知道是怎麼上版,舊專案與新專案竟然同時並存。老闆一開始開到舊專案,還在群組裡罵人,質疑為什麼跟測試機不一樣,開始標罵。


這是維運的部分,前端工程師的他們都沒處裡過。我想說畢竟還是多年戰友,就小小幫了他們一下。接著更讓我傻眼的是,線上被開了多達 18 個 bug。我想說這件事情你們測試測了這麼多天,營運也測了這麼多天都測不出來,一定要等到上線之後才噴出 18 個 bug?我覺得這件事真的他媽的有夠掉詭。


然後那位不想接主管的新主管呢?繼續神隱,沒有大咖CUE他就不干他的事~


我前一天晚上還跟同樣被 fire 的一個 PM 聊天,他就說在這間公司發生這種事一點都不意外。


在這樣一間營運至上的公司裡面,他們根本不了解技術的價值,甚至連維持專案穩定度都不在乎。如果覺得薪水發太多,你 fire 新人也就算了,居然連主管都 fire。只能說這一切的發生都不意外,也確實反映了這間公司那些大佬的主觀感受,反正在這間公司:


1. 軟體操作問題:

   當他們正在操作某個軟體,只要出問題了,肯定都是系統創作者,也就是前端要負責。

   (a) 網站突然掛了,是前端要負責

   (b) 資料跑不出來,是前端要負責

   (c) 跟UI團隊溝通不良或溝通激烈或照著做出事,只要有前端在,就是前端的錯


2. 測試與品質問題:

   如果測試人員自己測太慢、測不完,也會說是前端丟出來的程式碼品質不好、沒有經過自測,最後還是前端的錯。

3. 開發速度與討論參與:

   (a) 如果程式寫太快,肯定是因為功能給得太簡單,這被認為是應該且正常的。

   (b) 參與討論時,如果你給太多建議,就你意見最多、都是你的毛;但如果你不講話全盤皆收,又會覺得你絕對都沒在做事情。


總而言之,千錯萬錯都是前端的錯。我覺得也差不多夠了。

這些事情之後都與我無關了。「HD 鬼故事」也不會再連載,因為我也畢業了。感謝大家長時間以來的支持,HD 的故事就在此落幕,謝謝大家。


補充一件事,我原本以為他們會忘記我的電腦是公司提供的,我就可以繼續爽用。


在今天下午財務理所當然他詢問了我要收回電腦的事情,問說什麼時候可以來跟我拿電腦。因為這台電腦平時也是我的日常機在使用,我就想問她說能不能再緩個幾天讓我備份一下資料。結果他就開始訓話模式說:「為什麼公司的電腦裡會有你的資料?你知不知道公司電腦是不能私用的......」;啊是說CEO都沒意見了


關於這位財務,記然講到這份上了,就補充完整吧

就在去年員工旅遊時,我突然覺得他對我特別冷淡。原本還想說是不是我的錯覺,但我發現公司所有帶小孩的家庭中,他是會去主動關心小孩,跟小孩玩的,但唯獨不會跟我們家小孩主動互動,通常都是不小心同桌或對到的時候,才會有那麼一點點必要性互動。

而且在平常與公司的相處中,只要我們受到公司好處,例如聚餐,發薪水,他就會私底下提醒我們要謝恩、要感謝公司。這導致我們公司產生了一個很獨特的文化:收到薪水後,要在群組裡面發「感謝公司」文。

他真的是一個非常市儈的人。但對我來說這不完全是貶義,我就做不到,可能這就是他得寵,人員好到成為情報集中站,且可以活到現在的原因吧。或許去年員工旅遊時,他早就接到不少關於我的消息,知道我已經被公司討厭了,所以對我的態度才變得冷淡吧。

當然這純屬我的個人猜測。我自認應該沒有得罪他什麼,剛進公司時,常跟他抱怨,但也不是真的有意要吐槽他,我吐槽的是公司制度。可能是我第一次員工旅遊時,因為他沒搭上飛機,最後請他幫忙改機票、改行程,然後他幫我買伴手禮(お土産),主動補貼我費用,我竟然都真的接受了,且沒有任何表示,因此得罪他吧?不知道。

.......總之就是⋯⋯

讀者以後找工作如果公司讀音是HD開頭的,特別你應徵的是前端,請三思~

2026年2月5日 星期四

動態單位dvh, svh, lvh

我知道我孤陋寡聞,這東西都出來多久了,現在才在追,沒錯,要不是瀏覽器遇到奇怪的問題,我大概一被子也不會碰到這東西,原本以為傳統vh, %已經夠用了,沒想到有推出這麼好用的東西,廢話不多說,直接開始

1. svh (Small Viewport Height)

  • 含義小視窗高度

  • 定義:當瀏覽器的 工具列完全顯示(展開狀態)時,所剩餘的可視區域高度。

  • 特性:它是三者中最小的高度。

  • 場景:當你希望元件在任何情況下都不會被工具列遮擋時使用。

2. lvh (Large Viewport Height)

  • 含義大視窗高度

  • 定義:當瀏覽器的 工具列完全隱藏(收起狀態)時,所能達到的最大可視區域高度。

  • 特性:它的數值與傳統的 100vh 基本一致,但在某些裝置上更穩定。

  • 場景:當你追求極致的全螢幕視覺效果,且不介意底部內容暫時被工具列覆蓋時使用。

3. dvh (Dynamic Viewport Height)

  • 含義動態視窗高度

  • 定義:根據 工具列目前的顯示狀態自動調整 的高度。

  • 特性:當工具列縮小時,100dvh 會變大;當工具列展開時,它會縮小。

  • 場景:這是目前最推薦的單位,適合用來製作「真正的全螢幕」滿版背景或中間定位的彈窗(Modal),它能確保元件始終在當前的畫面中央。


快速對比表

單位全寫工具列狀態高度大小適用情況
svhSmall Viewport Height展開 (Max UI)最小確保內容不被遮擋
lvhLarge Viewport Height隱藏 (Min UI)最大追求最大視覺空間
dvhDynamic Viewport Height自動變動隨動最推薦,自動適應當前畫面
那100dvh跟100%差別在哪呢,主要就是不會受到父元素影響吧,上圖表
特性height: 100%height: 100dvh
參照對象父元素 的高度。視窗 (Viewport) 的動態高度。
依賴性必須「層層向上」定義高度。獨立存在,不論父元素高度為何。
動態縮放隨父元素變動。隨瀏覽器工具列(網址列)縮放變動。
預設行為若父元素沒設高度,此設定無效。即使放在深層結構,也能直接抓到螢幕高度。
所以傳統做法需要先定意html, body的高度,讓container可以做到高度100%
html, body, .container {
    height: 100%;
}
之後就不用這麼麻煩了,直接
.container {
    height: 100dvh;
}
搞定收工,歡呼聲!

2025年12月8日 星期一

下載txt小說在mac卻不能看,試試看iconv

 其實說穿就是一行指令,請參考

iconv -c -f GB2312 -t UTF-8 [小說檔名含副檔名] >> [轉存後的檔名]

2025年9月30日 星期二

最近AI圈很火的chrome devtools mcp

 

洨邊假設大家知道mcp是什麼了,直接上官方github,文件寫得很清楚

https://github.com/ChromeDevTools/chrome-devtools-mcp

這邊以codex為例

codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest

基本上就裝好了

接著就來實際操作一下

我們來切一個figma版

首先把下面選項選到箭頭,第二步選擇頁面的標題按右鍵,找到copy as > copy link to selection,複製這個頁面的網址(取得node_id)



咒語:
使用chrome devtools訪問figma中設計好的頁面,用tailwindcss完整的復現這頁面:{網址}
然後你就靜靜看著他完成吧
這個token吃挺兇的

9/30
第一次嘗試,大失敗,他完全沒有參考我給的figma自己亂切東西,還吃了我一大堆token....

2025年9月12日 星期五

HD鬼故事N+5集

今天來說說洨邊的主管之路

就在洨編當上主管後,PM照常發任務給我底下工程師,我就這樣被架空了半年,甚至連週報都沒有寄了,每天就忙著摸摸新技術什麼的,甚至還抽空學了套flutter,過得好不愜意。

就在半年之後,因為人力分配不當導致專案延宕(事實上我覺得分配沒啥問題,畢竟我底下也才兩個人可以用),老闆怪罪下來,說項目經理(CEO)管理不當,再犯直接辭退,PM架空主管,懲處罰金X千元.....WTF,如果是我,寧願被口頭警告也不要被罰錢,而且公司可以罰員工錢的嗎!!這啥鬼故事!

但這事也沒什麼,就在事情過去兩三個月,我終於把手邊任務清得差不的時候,團隊迎來第一個大任務,重構

就是手上有五個長得非常類似的站,當初不知道哪個白癡手筆,硬拆成六個專案來維護(一個基礎站,別問我這是什麼,解釋起來我會怕),我從進公司就不斷提說要節省人力,要好維護,要不出問題,終就只有重構一途,這次終於要進行了

隨著會議進行,雖然項目很大,但我也是摩拳擦掌,信誓旦旦,沒想到在老PM休假一週後,一切就變天了,在一次會議中

老闆:還是你就在五個站當中挑一個站,加上換膚,這樣不就可以了

我:????(那我們前兩個禮拜在討論辛酸的嗎)

但老闆都說話了,且這筆買賣我也不是太虧,我就挑一個我有長期在維護跟重構的專案來當基礎站

我:那我選76站

老闆:那你們要解決頁面切換不順暢的問題

我看到這句話,心理想說我都已經沒有用lazy load,還會切換不順??難道要加上動畫??

所以我拆成兩大任務進行,第一,我現有的react專案,把底層改成astro.js(網傳這樣切換速度可以加速),路由切換加上動畫。第二,加上換膚功能

第一任務簡單說就是,在置換過程千瘡百孔,動不動就沒畫面,一堆坑要填,免勉強強一個月才完成底層置換,根本不像網路上講的幾乎無腦置換,重點換完效能更差==每次頁面切換都會頓個半秒到一秒

第二個任務倒是很快就順利完成

最終到了驗收時間

老闆:你們沒有解決畫面切換不順的問題啊,我不能為了節省人力,讓客戶體驗變差,公司為了你們一個月沒有任何產出

我:當初讓我選的是你,答應的也是你,現在不讓我上的也是你,且這專案頁面切換幾乎就是0.1秒,到底哪裡不順,能不能說明一下

CEO:你看一下錄影

我看完錄影發現,畫面是切過去了,但component要等api打完,才會長出來,幹!這叫做顯示流程有問題,才不是什麼效能問題

我看完真的是無FUCK說,需求在他們心裡,在這公司也不是一天兩天的事,PM私下建議我不要再上訴,默默把顯示流程優化完,再給他們看,簡單來說就是要我們加班拉。

然後過兩天......這位PM就掰了......說是沒過試用,實際原因也不知道,我也只能猜他背了我們的鍋。

過幾天老闆鬆口說,這次真的要進行重構了,但需要作足研究,避免做出來更慢(看來他對我們誤會很深啊),然後要我們給承諾.......(這公司不僅會扣錢還要員工給承諾),我說技術就這幾種,你們在意的體驗問題我們也了解了,新的站會特別打磨這塊,針對競品的研究可以作給你,但承諾我是給不出來拉,畢竟關係的層面太廣,從運營到後端,每個環節都可能影響網頁流暢,不能所有事都我們扛吧!

這次雖然真正開始重構,但老闆也沒上什麼心,但這樣也好拉,省的他來比手畫腳==,且畢竟之前停擺了一個月,累積了大量的卡片要清,所以我也只能讓大家先把任務做完,有空在進行重構,只是可想而知這樣進度一定會不如預期,但....目前也只能這樣

真正的鬼故事才正要開始,一次機緣下,其他部門要招新人,老闆隨口提到看我要不要再找一位,(其他部門有一位前端因為開週會時,開直播逛賣場後來掰了),我想說員工這種事多多益善,隨口就答應了,隨即談起這次照聘薪資,我聽聞後,寫信給老闆說:如果只是要補這工程師的洞,根本不需要這麼多錢,故能否招聘個普通的工程師(我有內推),然後剩餘金錢讓我們作其他應用,幫其他員工加薪

老闆馬上斥責我,公司沒有加薪制度,且你最近表現不佳,部門屢屢犯錯,破壞公司和諧,已經準備找人取代你!

......對於沒有完成換膚,我只能說,我確實也沒確認好他們的需求(幹這是PM的工作為啥是我扛)。過程中員工犯錯,我也不能為其說話,這就專案就的確實有問題,你就算殺了他也解決不了事情,事情還是會一再發生。最後對於破壞公司和諧的部分.....我只能說,那天我口氣確實不佳,但我始終就事論事,論述內容也沒問題,是對方開始跳針,且當時已經很晚了。但說到底這也是我跟那員工之間的事,這也要被他捅刀上報,我也是認了。重點這是都過去兩個月了,還要拿出來鞭屍。

我完爾一笑,日後也只能龜縮度日,但招募還是要繼續

就在七月中,我面識了一位內推,技術能力不錯,開發習慣也不錯,重點他還是台中人,且暫時沒有其他競爭者,我回報給PM結果,想說應該是穩了,沒想到過兩天PM回復:老闆希望找個有領導經驗的......你他媽的!有先決條件怎麼不先說!目的這麼明顯要把我換掉你幹嘛不自己來面啊!讓我面一個人來把我換掉,你可以在惡趣味一點啊!~

結果過了一個多月的奮戰,這位仁兄還是沒能錄取,錄取了另一個技術能力不錯,話非常多的工程師,有機會在來說說的的故事

總之我在這間公司的故事還沒說完,看有沒有機會出第六集~

10/7 沒想到這麼快就更新了,篇幅不長,究沒有出第六集,改DLC的方式新增

前情提要一下,目前公司有個主要業務,「五站(76+4站)」要維護,還有一切其他組業務,但不是今天重點,重點是公司目前主力開發「重構站」這個產品,目前重構站以從七月底開始開發,技術使用vue3,開發至今也才兩個多月,當初開給公司的工時是半年,遊說時間是兩年,然後目前前端組有以下工程師:
我(資深工程師兼主管,負責重構站)
A(資深工程師,負責重構站)
B(資深工程師,負責76站)
C(資深工程師,負責4站)
D(資深工程師,新進大能,原本我要讓他支援另外一組的任務+本組打游擊,讓他多方熟悉業務)
E(初階工程師,負責另外一個組的專案,偶爾來支援重構)

記得這些前提

這位新進大能入職後,因為他不熟vue熟悉react,而且重構站功能已經完成大半,我自然把他安排去維護76站。然而才過了短短一週,我已經收到兩次命令,希望他能投入重構站的開發任務,第一次被我以業務不熟,語言不熟,功能大致上已完成駁回,第二次在收到命令,我知道這次無論如何無法在駁回了,也只能接受。

接著D打電話來說:「他們覺得你辦事不力,很多東西都沒有達到當初協議的水平,UI敏感度不足,當初開的時是四個月....八拉八拉」,總之上頭希望D主導重構,但D回絕

四個月.....當初明明就說六個月,我都懷疑我講的中文跟上頭學的的中文意思是不是不一樣,他們才一該去參加中文怪物吧.....過程聽得出來他很理解工程師開發流程,也極力在幫我說話,主要先把功能做出來,再做細部優化,作一個好的作品根本不可能一步到位,做夢除外。我聽完也只是隨口抱怨兩句,沒多說什麼。然而真正讓我炸膛的是接下來要發生的事

在下班前,第二道命令接踵而來:「把B工程師也調去寫重構」

....B被調去寫重構,那76站怎麼辦?凡是會一點算數的都算得出來,扣除初階工程師,C本身就有4站要顧也無暇抽身,我手上能用的也只剩下A工程師,但這樣不對啊,A本來就負責重構站,現在功能都開發完了,大多都在測試跟debug階段,那不就等於要把最熟悉的人調離!!

於是我反問:「那是要我把A調去寫76的意思嗎?」我思來想去又補問一句:「還是上頭希望我去76站?」

PM回復我:「你覺得怎樣對重構站影響最小就怎麼做?」

此刻我明白了,我又再次被架空,根本沒打算讓我調度人力,而且根本沒打算尊重我,竟然真的把我跟A一同放在選項中,先說我從來不覺得主管不能coding,但我覺得主管不應該被任務綁死?而且這根本不是我過去或A過去的問題,我們兩個都有各自負責的功能,大多任務也都進入測試階段,不管是我去或他去,都代表有人要來擦我們的屁股,然後把兩個最熟悉架構的工程師調離,換兩個不熟悉的人進來,用馬的眼睛想都會知道,不管怎麼選影響都超~大~!

但~算了,我現在只是一般快樂小職員,可以準時下班我就偷笑了,這麼複雜的事我不想管也管不動了,大家晚安!祝大家中秋節快樂~

2025年9月11日 星期四

vue3做css變數操作除了v-bind你還有其他選擇(好文分享)

話不多說,上連結

簡單說靠著ref指定元件,接著設定:root css變數,最後靠setProperty改變變數內容,這著挺精妙的,大家有空可以上去爬原文



2025年8月8日 星期五

靜態資源快取怎麼做?

前言

很難得一天發兩篇文,還都不是我的本業文(算了我也不是第一天不務正業

總之後端反應為什麼前端會重複下載靜態資源,請我去查(乾~這又關前端什麼事

我再度拿我的專案去問gemini-cli,他給我的檢查方式是看network,靜態資源檔的size,如果顯示為disk cache或memory cache,那就是正常快取,如果為容量,那就是沒有快取(我以為是看status301,問了才知道301是轉址,好在不是問維運不然一定被嗆爆

這邊有個要注意的點,注意network頁的disabled cache不要打勾,不然你永遠看不到快取(我就這樣犯傻浪費了些時間

以下這張圖就是有拿到快取


假設沒有快取,如果你想在nginx上設置,可以加上以下配置,時間可以自訂

location ~* \.(jpg|jpeg|gif|png|svg|ico|webp)$ {
# 快取有效期設為一天
expires 1d;
# 明確設定 Cache-Control 標頭
# public: 可被任何快取(包括 CDN 和代理伺服器)快取
# immutable: 告訴瀏覽器這個檔案內容絕對不會改變,不需要為了驗證而重新發送請求
add_header Cache-Control "public, max-age=86400, immutable";
# 可選:關閉這個 location 的存取日誌,減少 I/O
access_log off;
}

這樣應該就可以做到一天快取

小結

結果在我們站上,我把nginx設定拉掉,快取還是在啊,強烈懷疑那位後端把disabled cache打溝了,但我沒有證據......好拉快點讓我下班吧==