First, your example site directory is confusing. I see now what you mean. But when I look in content and see what looks like a site structure, well… Maybe I didn’t look at it as carefully as I should have, but I wouldn’t be surprised if others were similarly confused.
Second, you need to refactor func-resource.html so that you’re not passing a URL to a method that expects a path.
{{ $u := $url | urls.Parse }}
{{ if $u.IsAbs }}
{{ with resources.GetRemote $u.String }}
{{ $result = . }}
{{ end }}
{{ else }}
{{ with $page.Resources.GetMatch $u.Path }}
{{ $result = . }}
{{ else }}
{{ with $page.Resources.Get $u.Path }}
{{ $result = . }}
{{ else }}
{{ with resources.GetMatch $u.Path }}
{{ $result = . }}
{{ else }}
{{ with resources.Get $u.Path }}
{{ $result = . }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
It aslo wouldn’t hurt if the remote call had some error or warning handlers, something like:
{{ $r := "" }}
{{ $u := urls.Parse "https://example.org/kitten.jpg" }}
{{ if $u.IsAbs }}
{{ with resources.GetRemote $u.String }}
{{ with .Err }}
{{ errorf "%s" . }}
{{ else }}
{{ $r = . }}
{{ end }}
{{ else }}
{{ errorf "Unable to get remote resource %q" $u.String }}
{{ end }}
{{ end }}