Caddy generates relative links, e.g. ./Directory_One/. Your browser is meant to append this relative link to the current directory.
When you browse to localhost/files, you think that the current directory is /files, thus you are looking at the index of that directory, and the relative link should lead to /files/Directory_One/. Incidentally, Caddy thinks the same way - because of your rewrite, it doesn’t need a trailing slash.
But the browser disagrees. The browser thinks the current directory is /, and you’re looking at a page called files. Thus . goes up to the current directory and you end up at the absolute path /Directory_One/.
The solution is to browse to localhost/files/ (note the trailing slash), so your browser recognizes that it’s in a subfolder.
The reason localhost/files works at all is because you are rewriting to {path}/. Normally a request to localhost/files wouldn’t meet the browse /files/ base path requirement.