你在这里

nginx 处理图片重定向

location ^~ /sites/default/files/styles/ {
  index index.php index.html;
  if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php?q=$1 last;
    break;
  }
}

drupal 处理图片的时候会重定向

所以要nginx 要专门处理下这个请求

因为Drupal的Image Style访问的图片会将起重写到 /?q=/sites/default…. 这样的地址,而并不是直接让Apache来返回的,而Nginx因为没有相关的Rewrite Rule,所以并没有将静态文件的访问转到 Drupal 上

来自drupal中国群共享
field_vote: 

猜你喜欢

评论

这是方域在Drupal中国群里的建议,后来他又给出了优化的方案,可以参考一下:

location ^~ /sites/.*/files/styles/ {
  if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php?q=$1 last;
    break;
  }
}

Drupal China http://drupalchina.cn

我测试了一下,下面的写法可以正确运行:

location ^~ /sites/default/files/styles/ {
  if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php?q=$1 last;
    break;
  }
}

 

但下面的写法不能正常工作

location ^~ /sites/.*/files/styles/ {
  if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php?q=$1 last;
    break;
  }
}