Can not render pre designed html template from public directory

<html xmlns="http://www.w3.org/1999/xhtml&quot;&gt; <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <link href="css/style.css" rel="stylesheet" type="text/css" media="all"/> </head> <body> <div class="title">Post: *{post_name}*</div> </body> </html>

I have a posts controller and need to render this template from posts#show without changing anything under *public/test *directory. And, replace *{post_name}* by post name.

I've tried that in many ways to do that but couldn't. Specially, the css and images path not working any way. It's always looking underhttp://localhost:3000/posts/{....}

Your CSS link is relative (doesn't begin with a / ) so the browser will think the path for it is /posts/test/css/style.css.

Making the css and any asset links absolute will fix this. You could if you really didn't want to change the file, add a route for that path and render the css file in response but that seems a bit over the top. Alternatively rewrite any of those relative links in the file before you send the response (I'd recommend using nokogiri to do this rather than tearing apart the HTML with regular expressions). I'm also sure why this isn't a regular erb/haml template though instead of inventing your own templating scheme.

Fred