Polymer 在Phoenix框架中导入html页面

Polymer 在Phoenix框架中导入html页面,polymer,phoenix-framework,brunch,Polymer,Phoenix Framework,Brunch,我试图在模板页面中包含我的聚合工具,但服务器未正确路由到文件。我已经把文件放在了各自的路径中,但是当我点击实时链接时,我得到了404 <link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-pages/iron-pages.html") %>"/> <link rel="import" href="<%= static_path(@conn,

我试图在模板页面中包含我的聚合工具,但服务器未正确路由到文件。我已经把文件放在了各自的路径中,但是当我点击实时链接时,我得到了404

    <link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-pages/iron-pages.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-ajax/iron-ajax.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-meta/iron-meta.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-iconset-svg/iron-iconset-svg.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-iconset/iron-iconset.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-flex-layout/iron-flex-layout.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-icons/iron-icons.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-icons/maps-icons.html") %>"/>
<link rel="import" href="<%= static_path(@conn, "/assets/polymer/iron-elements/iron-icons/social-icons.html") %>"/>

您的静态资产路径很可能不正确。我相信如果你把它改成:

"/polymer/iron-elements/..."
(请注意删除“/资产”)。您应该准备就绪。

您可以使用它从多个依赖项构建单个文件。以下是以下元素的示例设置:

<paper-dropdown-menu label="Your favourite pastry">
  <paper-menu class="dropdown-content">
    <paper-item>Croissant</paper-item>
    <paper-item>Donut</paper-item>
    <paper-item>Financier</paper-item>
    <paper-item>Madeleine</paper-item>
  </paper-menu>
</paper-dropdown-menu>
vulcanize --inline-scripts --inline-css target.html > web/static/assets/polymer/rubber.html
硫化元素:

<paper-dropdown-menu label="Your favourite pastry">
  <paper-menu class="dropdown-content">
    <paper-item>Croissant</paper-item>
    <paper-item>Donut</paper-item>
    <paper-item>Financier</paper-item>
    <paper-item>Madeleine</paper-item>
  </paper-menu>
</paper-dropdown-menu>
vulcanize --inline-scripts --inline-css target.html > web/static/assets/polymer/rubber.html
通过添加到
endpoint.ex
,开始供应
polymer
资产:

only: ~w(css fonts images js favicon.ico robots.txt polymer)
为捆绑包添加HTML导入:

<link rel="import" href="<%= static_path(@conn, "/polymer/rubber.html") %>">

很可能您也想为polyfill图书馆提供服务。为此复制
web/static/vendor/
下的
webcomponents lite.js

注意:早午餐会产生以下错误:

组件JSON文件“bower\u components/paper elements/.bower.JSON”必须具有
main
属性

并停止处理其他
bower_组件
afaic。为了防止这种情况发生,您可以在项目根目录的某个子文件夹中使用bower/Duverize。此外,当您使用硫化橡胶时,无需使用早午餐处理聚合物的
bower_组件


另请参见a-可能是从CDN加载元素。

即使从路径中删除资源,我仍然会遇到错误。我甚至尝试过“polymer/…”我的HTML页面位于“/web/assets/polymer/…”下,因此我希望我的原始路径能够工作:-/确保Bunch正在运行,并确保polymer资产输出到“priv/static”。特别是,如果希望按原样复制资产,那么资产应该位于“/web/static/assets/polymer”下。bower.json文件不是不必要吗?它不能被删除吗?这能解决你在早午餐中描述的错误吗。我很喜欢你提到的第二种方法。非常感谢。但这并不能解决我想要实现的目标。你知道我用这个解决方案做了什么。我仍然觉得应该有一个更好的解决方案,但谢谢。我可以看到以下改进:-将为早午餐添加硫化插件(目前);-http 2将允许单个元素推送;聚合物可能会从bower转变为bower。我不确定这是否会有什么改善,但我觉得在到达时检查一下是值得的。我正在使用下面的Makefile。我现在把我的文件都硫化了。它们是如何提供的?我尝试创建一个控制器,但页面继承了我的布局模板。硫化输出是一个静态资产,不需要控制器-。