Soru Sanal makine dışında kaydedildiğinde düzgün şekilde kodlanmamış olan vagranttaki JS ve CSS dosyaları


OSX, Ubuntu ve Windows 7 üzerinde vagrant çalıştırıyorum ve host makinede IDE'ler olarak vim ve Netbeans kullanıyorum. VM, CentOS 6.3 ve Apache 2.2 kullanıyor. Docroot ayarlandı /vagrant.

Bir JS veya CSS dosyasını düzenlediğimde ve kaydettiğimde, tarayıcı dönüyor ve yasa dışı karakterleri tespit ediyor. Dosyayı tarayıcıda görüntülediğimde, genellikle bir kodlama sorununu işaret eden elmas soru işareti karakterini görüyorum. VM içindeki dosyayı vim ile açabilirim ve :w ++enc=utf-8 ve dosya normal olarak yüklenir.

Ana makinede ve farklı ana işletim sistemlerinde birden çok IDE'yi denedim ve bunu yalnızca vagrant ve takılı dizini kullanarak yapacak bir şeyle eşleştirebilirim. Dosyalarımı yerel olarak çalıştırabildiğim ve çalıştıkları veya uzaktaki bir makineye kaydettikleri ve dosyalar çalıştığı için IDE'lerim sorun değil. Sadece onları monte edilene kaydettiğimde /vagrant bir sorunum var mı

Bunu işe almak için değiştirmem gereken bir Apache veya işletim sisteminde başka bir şey var mı?


32
2017-10-08 13:39


Menşei


Apache yanıt başlıklarınızı gönderin - s.webbandit
Aynı durumda ama nginx web sunucusu olarak ve aynı sorunu ele alarak, onun nginx ile ilgili olduğunu düşünmüyorum, dos2unix ayrıca benim için çalıştı - amd
Olası kopya Vagrant / VirtualBox / Apache2 Garip Önbellek Davranışı - kenorb


Cevaplar:


Bu sabah bu problemi yaşadım. EnableSendfile öğesini httpd.conf dosyanızda kapalı olarak ayarlayın.

Httpd.conf dosyasına bakarsanız, "NFS'ye bağlı dosya sistemlerinden sunuluyorsanız bunu kapatın." İçinde http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile "Varsayılan olarak, bir isteğin işlenmesi bir dosya içindeki verilere erişim gerektirmediğinde - örneğin, statik bir dosya gönderirken - Apache, işletim sistemi hiç dosya okumadan dosya içeriğini teslim etmek için sendfile komutunu kullanır." onu destekler. "

Windows hostunuz bir ntfs dosya sistemine sahip olduğundan, linux kullanıcısı dosyayı filefile düzgün bir şekilde önbelleğe almaz ve apache'nin dosyayı kendisinin göndermesi gerekir. Bu, apache'den dosya talep ederken marjinal bir yavaşlamaya neden olabilir, ancak ihmal edilebilir.


49
2018-03-15 19:13



Nginx'te işletim sistemi olarak OS X ile aynı sorun. Yine, ayar sendfile off; nginx.conf dosyasında bu düzeltildi. - watermanio
benim için de çalıştı! emin olun, eğer vagrant kullanıyorsanız, vagrant reload böylece değişiklikler nginx.conf dosya güncellenecektir. - tmthyjames
@John_McCombs bugün benim için tanrımsın :). Benim durumumda /etc/apache2/apache2.conf - sobi3ch
Bu soruna OS X ana bilgisayarında, boot2docker, Docker ve Apache'de bir kapsayıcıda çalışıyordu. EnableSendfile off sorunu da giderir. - bstakes
Watman, sen kayalar! - aqquadro


Hangi sunucuyu kullandığınıza bağlı.

İçin nginx: içinde /etc/nginx/nginx.conf:

içeren satırı değiştir sendfile on; için sendfile off;.

İçin Apaçi: içinde /etc/httpd/conf/httpd.conf:

Yorum sil EnableSendfile off;

Ve yapamaz unutmak restart Nginx veya Apache'niz. Eğer hala çalışmıyorsa exit ve vagrant reload ya da böyle bir şey - VM'nizi yeniden başlatın.


5
2018-05-24 03:09