渲染部分位于凤凰城的子目录中

时间:2016-12-31 18:29:17

标签: templates elixir phoenix-framework partials

如果partial与另一个.eex文件位于同一文件夹中,您只需运行render "filename.html",但如果它位于子文件夹中,该怎么办?在我的例子中,我有一些部分包含一些SVG图标的HTML。我不希望那些文件混乱我的控制器的主模板目录(我宁愿将它们放在templates/pages/icons而不是templates/pages)。但是,如果它们与呈现它们的.eex文件不在同一目录中,则按名称引用它们不起作用,也不执行render "icons/filename.html"之类的操作。处理这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

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

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

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

希望有所帮助!