Yes.
Leave scripts, stylesheets and images as static files and let the webserver handle them. The server will make them cacheable by default, unless you go out of your way to configure it otherwise.
Use PHP or similar to add the appropriate HTTP headers to your HTML page.
If your HTML page is a static file, check out mod_headers.