Are you using a stream “profile” or are you using an iRule using a stream “expression”? I don’t believe there is a viable alternative to using a stream profile if you are looking to replace all instances of http://host.abc.com/test.js with http://host.abc.com/public/test.js in the HTTP response.
If you are using an iRule with a stream expression, then take a look at this DevCentral Community comment . They said that there were able to find a workaround within the same iRule to get this to work without creating a front-end layered virtual server.