the resource retrieval is a responsibility of "UriLocator"'s. There are several implementations which are used based on the resource uri.
If the uri starts with "http" or "https", the UrlUriLocator is used.
If the uri starts with "/" the ServletContextUriLocator is used.
It is very likely, that redirects are not followed while resource are located. This would make sense for both: UrlUriLocator & ServletContextUriLocator.
Feel free to open an issue.
Regarding your second question, the filesystem resources can be located as well using the UrlUriLocator. All you have to do, is to update the resource uri to something that looks like this:
More details are documented here
Let me know if that helps.