Using language prefix on all nodes, e.g. http://example.com/en/my/path (let's say it's node/123).
On the Cache Expiration tab of the given node all checkboxes are on.
On edit and save of a page the page is NOT expired from external cache (Varnish, with Purge).
The Watchdog message contains (among others) these URLs:
URL: node/123
Wildcard: false
Expired object: node
--------
URL: my/path
Wildcard: false
Expired object: node
I then tried manual expiration via command line and found:
curl -X PURGE -H "Host: example.com" http://127.0.0.1:80/my/path -> cache NOT cleared
curl -X PURGE -H "Host: example.com" http://127.0.0.1:80/en/my/path -> cache CLEARED
So it seems to me that there is a problem with including the language prefix in the expired URLs.
NB "Include base URL in expires" is UNchecked because of the help text "Enabling this setting when Varnish (link is external) or Acquia Purge (link is external) modules are used as a cache backend is not recommended."
So as I use Varnish module, I should keep it unchecked, right?
Comments
Comment #1
Vacilando CreditAttribution: Vacilando commentedComment #2
SpleshkaHm, that is probably issue of varnish module?.. I am really not sure which module is responsible for this issue. I remember there was an issue that for integration with varnish, expire module should send only internal paths like my/path. And the rest should be done by varnish/purge modules. Anyway, I will take some time for research. Would be nice if you could join it as well.
Comment #3
das-peter CreditAttribution: das-peter commentedYou might want to check this out: #2267305: Problem when clearing the cache of nodes using entity translation
Comment #4
joelpittetThe problem seems to be duplicate, closing in favour of the one with the patch. #3