当前位置:  开发笔记 > 编程语言 > 正文

使用symfony3提供远程静态文件

如何解决《使用symfony3提供远程静态文件》经验,为你挑选了1个好方法。

我的Nginx配置有问题.我有2台服务器,一台使用nginx,另一台使用我的webApp在symfony3中.这是我的配置:

location /portal/mysite/ {

    set $frontRoot /srv/data/apps/mysite-portal-stag/current/web;
    set $sfApp app.php; # Change to app.php for prod or app_dev.php for dev

    root  /srv/data/apps/mysite-portal-stag/current/web;

    rewrite ^/portal/mysite/(.*)$ /$1 break; 
    try_files $uri @sfFront;

}
location @sfFront {

    root  /srv/data/apps/mysite-portal-stag/current/web;

    fastcgi_pass myserver:myport;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $frontRoot/$sfApp;

    fastcgi_param SCRIPT_NAME /portal/mysite/$sfApp;

}

webSite适用于所有php脚本,但所有资产(静态文件)都是损坏的文件.我不太了解Nginx如何工作来指示什么是静态文件并"告诉"我的代理他们不是脚本.



1> cnst..:

try_files指令自动尝试查找静态文件,并在放弃之前将它们作为静态文件提供,并将请求作为脚本提供.

http://nginx.org/r/try_files

检查指定顺序的文件是否存在,并使用第一个找到的文件进行请求处理; 处理在当前上下文中执行.根据root和alias指令从文件参数构造文件的路径.可以通过在名称末尾指定斜杠来检查目录的存在,例如"$ uri /".如果未找到任何文件,则会进行内部重定向到最后一个参数中指定的uri.

请注意,虽然您已经在使用try_files,但似乎您的路径处理可能不符合规范.


至于你自己的临时解决方案的答案,使用重写或两个都没有错,但是说,看起来你会从alias指令中受益.

http://nginx.org/r/alias

定义指定位置的替换.

但是,你从未解释过为什么要提供服务/tmp.请注意,/tmp往往是通过自动清除一些cron脚本,例如,在OpenBSD,该/etc/daily脚本将自动find和删除文件超过7天以上(一个在daily基础,顾名思义).


总之,您应该首先弄清楚文件系统的Web视图和文件系统之间的适当映射是什么.

随后,如果找到前缀,则只需使用单独location的资产alias.

否则,找出try_files按预期工作的路径.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有