我正在使用Vagrant在Apache2上运行一个支持Ubuntu的VirtualBox.
除其他外,Web服务器提供来自my/vagrant目录的静态文件.
这在大多数情况下效果很好.但是,当我更改共享文件夹上的图像并重新加载网站时,会提供先前版本的图像,但它会被截断.
如果我先从共享文件夹中删除旧图片,刷新网站以便图片不显示,然后保存新文件并重新加载网站,它就可以工作.
有谁知道这个问题?我没有安装任何特殊功能,只有带有mod_rewrite的Apache 2和带有Mongo的AP,APC插件,MongoDB以及带有一堆脚本的nodeJS.
在我的开发环境中编辑文件并将其保存到客户操作系统(CentOS)后,Guest会提供已编辑文件的缓存版本(.css或.js).
起初我认为这是一个本地浏览器缓存问题,但我已删除,禁用,焚烧等所有4个浏览器和笔记本电脑(非主机)硬盘中的每个本地缓存.
此外,我使用机器(从未访问过访客)进行了测试,并且访客仍然提供了未经编辑的文件.
然后我禁用了Apache中的所有缓存模块 - 我很确定(但不是正面的 - 并且对任何建议持开放态度)Apache不是罪魁祸首.
无论是我的客人还是我的主人都在以某种方式/某处缓存文件,我无法弄清楚如何或在哪里.
这是一个非常令人沮丧的48小时 - 任何帮助将不胜感激.
背景:
我很抱歉在这里问这个问题,但是我试过了serverfault并且4天没有得到任何答案.
那里的相关问题:https://serverfault.com/questions/394197/mount-shared-folder-vbox-as-another-user
题:
每次我的ubuntu(10.04)启动时,我都试图挂载我的vbox共享文件夹.
所以,我在/ etc/init上添加了一个条目:
description "mount vboxsf Desktop"
start on startup
task
exec mount -t vboxsf Desktop /var/www/shared
Run Code Online (Sandbox Code Playgroud)
似乎工作,除了所有文件都由"root"拥有的事实,我没有权限写在文件夹上(chmod和chown似乎都没有工作).
那么,如何让这个共享文件夹下的所有文件归www-data user/group所有呢?
ps.:我有一个自动共享文件夹的主要原因是,我可以在GUEST www文件夹上的HOST中创建/编辑文件.
如果你有更好的想法,而不是共享文件夹,可以自由地说.
不久前我遇到了javascript资产的问题.当我对它们进行更改时,它们不会生效,文件将变为无效的javascript(firebug抛出错误和警告).
我注意到我的更改没有出现,并且特殊字符被添加到文件的末尾.多挖一点,我注意到特殊字符正好是我编辑的字符数.
原始代码:
$(document).ready(function(){
alert('what');
});
Run Code Online (Sandbox Code Playgroud)
添加一行,应如下所示:
$(document).ready(function(){
alert('what');
alert("what's going on?!);
});
Run Code Online (Sandbox Code Playgroud)
渲染如下:
$(document).ready(function(){
alert('what');
});??????????????????????????
Run Code Online (Sandbox Code Playgroud)
当我研究时,我发现修改apache配置/etc/httpd/conf/httpd.conf并注释掉EnableSendfile off修复了这个问题.
现在问题已经回归,但是apache配置没有改变.
请帮忙.我目前的工作是重命名文件,查看新文件并将其命名为; 这让我非常恼火.
我正在开发一个流浪盒,CentOS 6,PHP 5.3/apache 2 - 原始解决方案可以在这里找到:VirtualBox for Apache中的共享文件夹.
不幸的是,这似乎不再起作用.
virtualbox ×3
apache ×1
apache2 ×1
caching ×1
garbage ×1
javascript ×1
mount ×1
ubuntu ×1
ubuntu-10.04 ×1
vagrant ×1