I don't quite understand this:
For a single page you can do HTTP In → Template → HTTP Response, but maintaining multiple files (CSS/JS) becomes awkward because you must either inline everything or create separate endpoints and set content-types yourself.
I can use wildcards/placeholders in my http in nodes thusly:
[{"id":"0a160401698a7821","type":"group","z":"1f980ab215b3d38b","g":"ef8e132ea7cfb169","name":"requests in","style":{"label":true,"color":"#3f3f3f"},"nodes":["e43251341bcee72a","a43ab9aa8a80e60a","b6e61b1f9f246701","5f835aad5ff51ad6","6489f7e9c1b310c7","8a610e2b5a0c2a24"],"x":27,"y":92.68339843750005,"w":272,"h":339.31660156249995},{"id":"e43251341bcee72a","type":"http in","z":"1f980ab215b3d38b","g":"0a160401698a7821","name":"","url":"/","method":"get","upload":false,"swaggerDoc":"","x":103,"y":133.68339843750005,"wires":[["c8e7158422d37ae5"]]},{"id":"a43ab9aa8a80e60a","type":"http in","z":"1f980ab215b3d38b","g":"0a160401698a7821","name":"","url":"/:content/:name","method":"get","upload":false,"swaggerDoc":"","x":153,"y":287.5611267089844,"wires":[["c8e7158422d37ae5"]]},{"id":"b6e61b1f9f246701","type":"http in","z":"1f980ab215b3d38b","g":"0a160401698a7821","name":"","url":"/:name","method":"get","upload":false,"swaggerDoc":"","x":123,"y":184.12226562500004,"wires":[["c8e7158422d37ae5"]]},{"id":"5f835aad5ff51ad6","type":"http in","z":"1f980ab215b3d38b","g":"0a160401698a7821","name":"","url":"/:name","method":"post","upload":false,"swaggerDoc":"","x":123,"y":338,"wires":[["c8e7158422d37ae5"]]},{"id":"6489f7e9c1b310c7","type":"http in","z":"1f980ab215b3d38b","g":"0a160401698a7821","name":"","url":"/:content/:name/:data","method":"get","upload":false,"swaggerDoc":"","x":163,"y":236,"wires":[["c8e7158422d37ae5"]]},{"id":"8a610e2b5a0c2a24","type":"http in","z":"1f980ab215b3d38b","g":"0a160401698a7821","name":"","url":"/3d/scene.blg","method":"post","upload":true,"swaggerDoc":"","x":153,"y":391,"wires":[["c8e7158422d37ae5"]]}]
I then have msg.req.params.name, msg.req.params.content ... etc all the placeholders in the routes become params on the message.
So having having separate endpoints for assets isn't strictly necessary.