I think I should refresh public folder in index action, but how to do?
If the new image has the same URL (same name and path in your case) of the old image the browser uses the old image that has in his own cache.
The best solutions for this problem, apart asking the user to press Ctrl+F5 (or Ctrl+Shift+R) to clear the page cache, are:
Change name to the image each time the user changes the image itself.
Append a versioned querystring (something like ?v=2) to the image URL to force the browser to request the new image: the URL is different from everything it has in cache so it's forced to get the new resource.