歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Vagrant下共享目錄靜態文件(js/jpg/png等)“緩存”問題

Vagrant下共享目錄靜態文件(js/jpg/png等)“緩存”問題

日期:2017/2/28 14:30:11   编辑:Linux教程

之前提到說通過Vagrant部署開發環境,使用目錄共享模式,在本地磁盤進行開發,而通過虛擬機環境運行開發的頁面。

是的,一切看起來都是那麼的順利,首先基於VirtualBox安裝了Vagrant,接下來,按照以往部署環境的習慣,在VM中安裝了nginx作為開發運行環境,並且將本地的共享目錄作為nginx的web目錄,然後打開頁面,看上去似乎都很正常,但接下來,你發現了一個神奇的事情,你修改替換了一個css,一張圖片,然後刷新浏覽器,發現什麼都沒有變,然後你有非常猛烈、使勁的F5,依舊還是沒有改變,是的,你看看編輯器,似乎替換是正常的,在看看VM上的文件,也都是對的,是的,嘗試重啟nginx,依舊沒有任何變化,你開始懷疑php5-fpm甚至於毫不相干的memcached和mysql,但都無濟於事。也不知道是什麼讓這些文件被“緩存”了呢。

當你嘗試修改一個js,並且用同樣的方法更新之後,會遇到類似的問題,是的,就算重啟VM上任何服務,甚至重啟VM,依舊沒有用,當然,比起其他資源文件,浏覽器的反應會強烈一些,因為浏覽器會提示未知錯誤,而你通過浏覽器查看你修改的JS文件,會看到文件尾巴有下面奇怪的隨機字符:

�����������������

這到底是什麼東西呢?編碼錯誤?緩存異常?又或是其他什麼?

是的,你嘗試花費很多時間,試驗各種各樣的方法去解決這個問題,其實對於nginx來說,你只需要修改配置文件(nginx.conf)中的一行重啟就能簡單的解決這個問題:

sendfile off;

找到 nginx.conf ,把裡面的 “sendfile on” 修改為 “sendfile off”。

當然,如果你使用Apache也可能遇到類似的問題,那麼同樣也有類似的配置需要修改:

EnableSendfile off

關於這個問題的參照:
https://github.com/mitchellh/vagrant/issues/351#issuecomment-1339640

http://stackoverflow.com/questions/9479117/vagrant-virtualbox-apache2-strange-cache-behaviour

如何使用vagrant在虛擬機安裝Hadoop集群 http://www.linuxidc.com/Linux/2013-04/82750.htm

Vagrant 中高效的 Puppet 模塊管理 http://www.linuxidc.com/Linux/2014-05/101873.htm

使用 Vagrant 和 Fabric 用於集成測試 http://www.linuxidc.com/Linux/2014-07/104113.htm

使用 Vagrant 搭建開發環境 http://www.linuxidc.com/Linux/2014-07/104116.htm

Windows 下配置 Vagrant 環境 http://www.linuxidc.com/Linux/2014-07/104115.htm

Vagrant 的詳細介紹:請點這裡
Vagrant 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved