Is it possible that the files and templates could (should?) be part of separate role that you perhaps pull in as dependency?
The other pattern I saw out there was that the file/template wasn't part of the roles, but was instead provided by playbook that is using the roles. So file was in repository with playbook and template/file path was passed to role as parameter.