使用nginx更新符号链接静态文件无效
我有一个使用nginx/1.2.6(Ubuntu 13.04 VirtualBox)运行的Symfony2.2.1项目。 硬链接的资产呈现方式正常。使用nginx更新符号链接静态文件无效
使用符号链接,它仅适用于第一次初始化。 当我更新一个符号链接源时,浏览器渲染使用 字符转换我的修改。浏览器没有错误,未经修改的部分不受影响。我的CSS文件修改后结束
例子:
[...]
div.form-actions {
text-align: center;
}
�����
目前,我使用的硬链接。我没有Apache2的这个问题...:/
你有想法吗? 感谢
Nginx的网站的conf:
server {
listen 80;
root /media/sf_NetBeansProjects/XXXX/web;
index app.php;
server_name XXXX.lo;
location/{
# try to serve file directly, fallback to rewrite
try_files $uri @rewriteapp;
}
location @rewriteapp {
# rewrite all to app.php
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/(app|app_dev)\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
error_log /media/sf_NetBeansProjects/XXXX/app/logs/nginx_errors.log;
access_log /media/sf_NetBeansProjects/XXXX/app/logs/nginx_access.log;
}
的精妙之处是,媒体/ sf_NetBeansProjects是我的Windows8 VirtualBox*享文件夹,但正如我前面说的,Apache2的总是好这一点。
这篇文章帮助:
https://coderwall.com/p/ztskha
“简单地说,的sendfile()使用内核调用直接从光盘为tcp复制文件如果正在使用远程文件系统(如NFS或VirtualBox的客户添置。东西),这种方法是不可靠的。“
实质上,如果您尝试在主机上存在的访客虚拟机上提供文件,请关闭NGINX的sendfile。
“要在Apache中关闭sendfile(),可以使用EnableSendfile off指令,对于nginx使用sendfile off。“
虽然这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – 2013-11-19 01:53:09
好吧,有一件事情出现在我的脑海里,也许你正在查看图像文件的二进制数据,所以也许浏览器不能识别这是一个图像文件,也许是因为nginx没有发送content-type
,可能是另一个原因。但我有一个建议,在默认location /
location/{
try_files ..... ;
types {
image/jpeg jpg jpeg;
}
}
或者添加这个,你可以include mime.types
服务器块
server {
#bla bla bla
include mime.types;
location/{
#bla bla
}
}
里面我不知道这是否会工作或没有,但它是值得一试。
没有任何效果。 – webda2l 2013-05-20 21:05:54
尝试在创建符号链接后重新启动php5-fpm。
sudo service php5-fpm reload
并检查disable_symlinks选项http://nginx.org/en/docs/http/ngx_http_core_module.html#disable_symlinks
重新启动fpm对选项检查没有影响,我已经在发布到*之前检查过了。值是可以的。 – webda2l 2013-05-20 21:03:45
尝试清除浏览器缓存有时nginx的扔文件为原料跟没有MIME类型集。 另请尝试更改HttpHeaders将每个文件的过期时间和缓存控制设置为最小值,这取决于您的项目是否仍在开发中。以便服务器推送的文件始终更新并且不会被浏览器缓存。
我已经添加了哑参数?a = 123456强制重载没有成功 – webda2l 2013-05-21 09:52:47
我有同样的问题,使用相同的设置。
你需要从Nginx的禁用的sendfile,才能正常发送下符号链接这个静态文件。
location/{
sendfile off; # Do it before try files
# try to serve file directly, fallback to rewrite
try_files $uri @rewriteapp;
}
我用相当多的你可以粘贴你的nginx站点配置的相关位? – 2013-05-10 12:03:33
是的,我完成了.tks。 – webda2l 2013-05-10 12:17:58
通过更新符号链接,你的意思是用编辑后的图片覆盖它。 – 2013-05-18 07:59:47