You can register arbitrary HTTP endpoints using the HTTP in
node. Where you load the webpage from is entirely up to you, these could be template nodes inside Node-RED, static files in the file system or other external sources.
There are some examples in the cookbook.
NOTE: I moved your topic, as this is not related to core development.