2010-02-20 22 views
0

我最近在讀元的一些瀏覽器不沖水其緩存甚至閱讀這種形式網址rewritting重定向到正確的JavaScript文件版本

myscript.js?v = 1234

的腳本URL後所以爲了解決我正在考慮實施解決方案的問題,我也閱讀了它,但沒有提供任何細節。像myscript-1234.js並重新路由到實際正確的文件,但我現在有疑問。 我應該是URL改寫爲myscript.jsmyscript.js?v = 1234?我實際上很困惑,它將如何改變重寫。

回答

1

您的重寫不應該重定向到任何其他網址(這將由瀏覽器提取),但應該是您的服務器上的「內部」。

我的意思是,當收到「myscript-1234.js」的請求時,服務器應該提供myscript.js文件的內容;這將永遠是最後一個版本。

中底:

  • 客戶端的是一個不同的URL每次要更新服務器上的文件時間:myscript-1234.jsmyscript-1235.jsmyscript-1236.js,...
    • 這就是爲什麼瀏覽器將嘗試從服務器重新獲取文件:因爲它不是同一個名稱,所以它不會將文件放入緩存中
  • 但是,對於服務器,總是有一個只有一個文件:myscript.js
  • 而你使用的是「改寫」規則,以便THR服務器只是試圖從磁盤讀取之前刪除的文件名的-XYZ部分。
+0

感謝您的幫助!這說得通!我剛剛完成實施! – ak3nat0n 2010-02-20 22:46:59

+0

不客氣:-)玩得開心! – 2010-02-20 23:03:02