在开发期间从 Ember 应用提供 iframe 内容

Serving a iframe content from Ember app during development

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

我正在尝试在组件中提供这些 iframe:

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

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

Uncaught UnrecognizedURLError

有什么方法可以告诉 ember-cli 开发服务器我希望它为特定文件夹提供服务吗?

最好将上传内容保存在 public 文件夹之外,例如在单独的 uploads 文件夹中。

要告诉开发服务器为特定文件夹提供服务,运行 命令:

 ember g server

这将生成一个 server/index.js,然后您可以对其进行自定义。

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

var express = require('express');
app.use('/uploads', express.static(__dirname + "/../uploads"));

最后,如果您还没有使用 express 依赖项,请安装它:

npm install express --save-dev

现在,启动 Ember 开发服务器后,可以提供 uploads 文件夹中的任何文件。