渲染部分位于 Phoenix 的子目录中
Render partial located in child directory in Phoenix
如果部分文件与另一个 .eex
文件位于同一文件夹中,您可以 运行 render "filename.html"
,但如果它位于子文件夹中怎么办?在我的例子中,我有一堆包含 HTML 的部分 SVG 图标。我不希望这些文件弄乱我的控制器的主模板目录(我宁愿将它们放在 templates/pages/icons
而不是 templates/pages
中)。但是,如果它们与呈现它们的 .eex
文件不在同一个目录中,则按名称引用它们是行不通的,render "icons/filename.html"
之类的事情也不行。处理此问题的正确方法是什么?
您必须首先修改您的 web/web.ex 文件,让它知道包含子目录:
use Phoenix.View, root: "web/templates", pattern: "**/*"
进行此更改后,您可以像这样使用相对路径:"icons/filename.html"
希望对您有所帮助!
如果部分文件与另一个 .eex
文件位于同一文件夹中,您可以 运行 render "filename.html"
,但如果它位于子文件夹中怎么办?在我的例子中,我有一堆包含 HTML 的部分 SVG 图标。我不希望这些文件弄乱我的控制器的主模板目录(我宁愿将它们放在 templates/pages/icons
而不是 templates/pages
中)。但是,如果它们与呈现它们的 .eex
文件不在同一个目录中,则按名称引用它们是行不通的,render "icons/filename.html"
之类的事情也不行。处理此问题的正确方法是什么?
您必须首先修改您的 web/web.ex 文件,让它知道包含子目录:
use Phoenix.View, root: "web/templates", pattern: "**/*"
进行此更改后,您可以像这样使用相对路径:"icons/filename.html"
希望对您有所帮助!