Templates 渲染部分位于Phoenix中的子目录中

Templates 渲染部分位于Phoenix中的子目录中,templates,elixir,phoenix-framework,partials,Templates,Elixir,Phoenix Framework,Partials,如果一个部分与另一个.eex文件位于同一文件夹中,您可以运行呈现“filename.html”,但如果它位于子文件夹中呢?在我的例子中,我有一堆包含一些SVG图标的HTML的片段。我不希望这些文件在我的控制器的主模板目录中杂乱无章(我宁愿将它们放在templates/pages/icons中,而不是templates/pages)。但是,如果它们与呈现它们的.eex文件不在同一目录中,则按名称引用它们不起作用,也不会执行类似于呈现“icons/filename.html”的操作。处理此问题的正确

如果一个部分与另一个
.eex
文件位于同一文件夹中,您可以运行
呈现“filename.html”
,但如果它位于子文件夹中呢?在我的例子中,我有一堆包含一些SVG图标的HTML的片段。我不希望这些文件在我的控制器的主模板目录中杂乱无章(我宁愿将它们放在
templates/pages/icons
中,而不是
templates/pages
)。但是,如果它们与呈现它们的
.eex
文件不在同一目录中,则按名称引用它们不起作用,也不会执行类似于
呈现“icons/filename.html”
的操作。处理此问题的正确方法是什么?

您必须首先修改web/web.ex文件,使其包含子目录:

使用Phoenix.View,root:“web/templates”,模式:“***”

进行此更改后,您可以使用如下相对路径:
“icons/filename.html”

希望有帮助