Sails js 从资产文件夹而不是视图加载部分视图

Sails js load partial view from assets folder not from views

给定以下代码:

<html>
<body>
<%- partial('myPartial.html') %>
</body>
</html>

如果我将 myPartial.html 放在 views 文件夹中,它将起作用,但是我想要做的是从 .tmp/public文件夹。

我试过从同一位置导入脚本并且它有效,所以我认为它可能与 partial().

有关

有没有人解决过这个问题?

.tmp/public 是从 assets 文件夹生成的,由默认的 grunt 任务处理。 Sails 在运行时服务 assets 时使用它。因此,在提供资产(如脚本和样式)时,路径是相对于 .tmp/public.

另一方面,partials 用于渲染 ejs,相对路径取决于您处理的视图。 Partials 确实属于 views 文件夹。但是如果你真的需要使用部分资产中的html,那么你必须访问myPartial.html相对于当前视图。

假设您 myPartial.html 在 .tmp/public/myPartial.html,那么您的视图应该类似于

views/homepage.ejs

<html>
  <body>
    <%- partial('../.tmp/public/test.html') %>
  </body>
</html>