我使用Nancy構建了一個web應用程序,並使用我自己的自定義類與Nancy向瀏覽器提供靜態內容。爲什麼瀏覽器多次下載客戶端模板生成的圖片?
當我運行一個演示(code here),並點擊其中的鏈接,回用客戶端模板從頁面中刪除圖像,然後渲染同一幅圖像上,我看到瀏覽器做了圖像的請求每次點擊後。
這裏是我的鏈接上多次點擊後鍍鉻devtools我的網絡請求的畫面呈現模板與圖像:
我想到的是,圖像也不會被再次從服務器下載。當我使用默認的Nancy應用程序或不是.NET-y的應用程序運行這個簡單的Web應用程序時,我只能看到一個圖像請求。我試過了一個南希的標準靜態內容提供商,一個golang file server,http-server,isaacs st。他們都這樣的表現:
我想我有我的到期或搞砸了高速緩存相關的頭,但我不知道。標題(here's the diff between the headers from the default Nancy implementation and my code as a gist)不會顯示我正在採取的任何操作。
我有很多問題:
- 發生了什麼事在使圖像再次下載該瀏覽器?
- 我該如何改進使用我的devtools來找出是什麼導致圖像被瀏覽器再次下載?
- 如果你想進入它,我的自定義實現有什麼問題?
我目前看到的Chrome版本33.0.1750.146 m該行爲在Windows 7
嘿!我沒有嘗試緩存破壞,但我*不想再次下載圖像*。我只是覺得應該下載一次。我編輯了我的問題,以澄清我在找什麼(我不認爲我原來很清楚) – jrsconfitto
當你在DOM中創建一個新的img元素,就像Hogan模板所做的那樣,瀏覽器不會在乎它呈現之前,它會對其進行無意識處理。靜態內容緩存(如圖像)必須由服務器進行控制,而不是在應用程序內進行控制。 –
我同意,我認爲我的靜態內容緩存的實現有一個問題,但我不知道是什麼。我的請求/響應與我看到的其他實現看起來沒有太大的區別。 – jrsconfitto