我使用localhost:
在$ gulp serve
上提供我的文件。
我的文件结构如下:
--- root/
|--- firebase.json
|--- app/
|--- index.html
|--- manifest.json
|--- elements/
|--- my-elements/
|--- my-element.html
在my-elements.html
内,我按如下方式调用两个<iron-ajax>
元素:
<iron-ajax id="manifest" url="../../manifest.json">
<iron-ajax id="firebase" url="../../../firebase.json">
我可以正常访问manifest.json
文件。但是当我尝试访问firebase.json
文件时,出现以下错误:
GET http://localhost:3000/firebase.json 404 (Not Found) iron-request.html:245
- 发生了什么事?
- 我不了解相对路径?
- 我出于某种原因被禁止使用相对路径访问高于
index.html
的文件吗? (对我没用。)- 如何使用
<iron-ajax> url
属性中的相对路径访问firebase.json? (或者根本就此而言。)
答案 0 :(得分:1)
我很确定你被封锁了,因为你使用的路径是完全有效的。
对于您的服务提供商而言,仅将app文件夹公开是有意义的。
答案 1 :(得分:0)
经过进一步的实验和分析,我很确定这是发生了什么......
在我的机器上本地创建和保存文件时,Web根目录是root/app/
目录。但是,当页面由gulp提供时,Web根目录变为localhost:3000
。由于localhost:3000
是路径中可访问的最高节点,因此我们无法访问其上方的其他目录?
这个理论还有一些东西没有回答。就像为什么我们可以在bower_components
和node_modules
等中访问我们想要的其他文件的内容。但是这个答案可能会在另一天发生。
修改强> 看起来上段中剩下的问题的答案是found in this SO answer(及其问题)。
看起来gulp正在准备一个分发目录(名为dist
),该目录在从Polymer Starter Kit提供时重新组织文件,该目录至少考虑了bower_components
子目录的路径差异。