Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Render partial located in child directory in Phoenix

If a partial is in the same folder as another .eex file, you can just run render "filename.html", but what if it's in a subfolder? In my case, I have a bunch of partials containing the HTML for some SVG icons. I don't want those files cluttering up the main template directory for my controller (I'd rather have them in templates/pages/icons than templates/pages). If they're not in the same directory as the .eex file that's rendering them, though, referring to them by name doesn't work, nor do things like render "icons/filename.html". What's the proper way to handle this?

like image 452
neurodynamic Avatar asked Dec 31 '16 18:12

neurodynamic


1 Answers

You have to first modify your web/web.ex file to let it know to include subdirectories:

use Phoenix.View, root: "web/templates", pattern: "**/*"

After making this change you can just use relative paths like so: "icons/filename.html"

Hope that helps!

like image 158
Chip Dean Avatar answered Sep 19 '22 12:09

Chip Dean