Ember.js 在开发期间从Ember应用程序提供iframe内容

Ember.js 在开发期间从Ember应用程序提供iframe内容,ember.js,ember-cli,Ember.js,Ember Cli,我的余烬应用程序中有一个public/uploads/…文件夹,用于保存我用户上传的所有文件。它包括图像、视频以及一些我想通过应用程序中的iframe提供的.html文件 我试图在组件中提供这些iFrame: <iframe src="/public/uploads/folder/file.html"> 开发服务可能正在接收对file.html的请求,并检查路由器,因为它看起来像是一个正常的GET请求,而不是一个资产。这给我留下了一个错误: 不可预知的不可识别的错误 是否有任何

我的余烬应用程序中有一个
public/uploads/…
文件夹,用于保存我用户上传的所有文件。它包括图像、视频以及一些我想通过应用程序中的
iframe
提供的
.html
文件

我试图在组件中提供这些iFrame:

<iframe src="/public/uploads/folder/file.html">

开发服务可能正在接收对
file.html
的请求,并检查路由器,因为它看起来像是一个正常的
GET
请求,而不是一个资产。这给我留下了一个错误:

不可预知的不可识别的错误


是否有任何方法可以告诉
ember cli
dev服务器我希望它为该特定文件夹提供服务?

可能最好将上载保持在
public
文件夹之外,例如在一个单独的
uploads
文件夹中

要告诉dev服务器为特定文件夹提供服务,请运行以下命令:

 ember g server
这将生成一个
server/index.js
,然后您可以自定义它

在导出的函数中添加以下行:

var express = require('express');
app.use('/uploads', express.static(__dirname + "/../uploads"));
最后,如果尚未使用express dependency,请安装它:

npm install express --save-dev

现在,在启动Ember dev服务器后,可以提供
上传
文件夹中的任何文件。

可能最好将上传保持在
公共
文件夹之外,例如在单独的
上传
文件夹中

要告诉dev服务器为特定文件夹提供服务,请运行以下命令:

 ember g server
这将生成一个
server/index.js
,然后您可以自定义它

在导出的函数中添加以下行:

var express = require('express');
app.use('/uploads', express.static(__dirname + "/../uploads"));
最后,如果尚未使用express dependency,请安装它:

npm install express --save-dev

现在,在启动Ember dev服务器后,
uploads
文件夹中的任何文件都可以使用。

您使用的是Ember cli mirage吗?如果是这样,您应该添加:
this.passthrough('/public/uploads/folder/**')到mirage/config.js谢谢。我真的试过了,但没用。据我所知,此请求没有到达Mirage,因为路由器将其识别为页面请求,然后在我的路由中找不到它。您使用的是ember cli Mirage吗?如果是这样,您应该添加:
this.passthrough('/public/uploads/folder/**')到mirage/config.js谢谢。我真的试过了,但没用。据我所知,这个请求没有进入幻影,因为路由器将它识别为一个页面请求,然后在我的路由中找不到它。这非常有效。到底发生了什么?据我所知,
server/index.js
允许我们定制开发服务器
ember cli
运行,我们告诉它在看到请求时使用express来
/upload/…
?这非常有效。到底发生了什么?据我所知,
server/index.js
允许我们自定义开发服务器
ember cli
的运行,我们告诉它在看到请求
/upload/…
时使用express?