Сделал так, как вы сказали:
location = /style.css {
root /var/www/losst/data/www/losst.ru/wp-content/themes/themes/arcade-basic-child/;
expires -1;
access_log /var/log/nginx/access_css_exclude.log css;
}
Вот что в логе:
37.52.110.246 - - [08/Jan/2017:13:34:30 +0300] "GET /style.css HTTP/1.1" 200 9991 "-" "Wget/1.14 (linux-gnu)" "/var/www/losst/data/www/losst.ru/wp-content/themes/themes/arcade-basic-child" "/style.css" "" "/style.css" "-" "-" "37.52.110.246" "/var/www/losst/data/www/losst.ru/wp-content/themes/themes/arcade-basic-child"
Возвращается старая версия. Из этого можно сделать вывод что wordpress вообще не причем. Это было ясно еще тогда, когда я отключал php и тоже возвращался старый файл. Как бы он его возвратил без php? Вот еще лог для версии location по умолчанию:
178.65.1.134 - - [08/Jan/2017:13:19:58 +0300] "GET /wp-content/themes/themes/arcade-basic/style.css HTTP/1.1" 200 28748 "https://losst.ru/wp-content/themes/themes/arcade-basic-child/style.css?x29372" "Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0" "/var/www/losst/data/www/losst.ru" "/wp-content/themes/themes/arcade-basic/style.css" "" "/wp-content/themes/themes/arcade-basic/style.css" "-" "-" "178.65.1.134" "/var/www/losst/data/www/losst.ru"
Формат лога:
log_format css '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$document_root" "$document_uri" '
'"$fastcgi_path_info" "$fastcgi_script_name" '
'"$proxy_host" '
'"$proxy_host" "$proxy_add_x_forwarded_for" '
'"$realpath_root"';
Приложение не при чем. На сервере установлен memcached. Может nginx его подхватывает как-то? Или там еще один кэш? Где и как очистить?