Hello, I have a designed template *public/test/show.html* with following sample html code. There is a css file and images in the mentioned directory. <html xmlns="http://www.w3.org/1999/xhtml"> <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 under http://localhost:3000/posts/{....} I will be pleased if anyone can help me regarding this. Thanks in advance for your help.
on 2012-12-04 00:01
on 2012-12-04 10:31
On 3 December 2012 20:36, John <mr.johnamato@gmail.com> wrote: > </head> > 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 under > http://localhost:3000/posts/{....} I am not sure what you are trying to do exactly but I think your whole approach is probably wrong, it is certainly not conventional. I suggest you work right through a good tutorial such as railstutorial.org (which is free to use online) so that you will understand the basics of rails. Colin
on 2012-12-04 22:25
As Colin Law stated you are not following the Rules of Rails. Why do you want to put a template in the public folder and create a headache for yourself. I suggest doing it the Rails way. Put your templates in /view/controller/show.html.erb Your basic controller actions CRUD, have corresponding views(template)
on 2012-12-05 00:58
On Dec 3, 4:36pm, John <mr.johnam...@gmail.com> wrote: > 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
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.