欺骗本地文件的远程位置
Spoofing a remote location for a local file
我正在编写一个由 C# webapi 应用程序提供服务的 Vue JS 前端。 webapi 指定将图像保存到它自己机器上的 E: 驱动器文件夹,并提供 src 链接供 UIs 使用。
一切都很好,但现在我想在 运行 本地测试所有内容(而且我无权访问 E: 驱动器)。问题:我可以将图像保存到我的 C: 驱动器,但是(出于显而易见的原因)当我尝试显示它们时,UI 浏览器显示“不允许加载本地资源”。
是创建某种远程托管的唯一解决方案吗?或者当文件实际存储在本地时是否可以“欺骗”远程 blob 目标?类似于 Javascript 的 URL.createObjectURL 方法,但在 webapi 中?
如果您可以访问 API 的源代码,您可以在本地构建并 运行 它,考虑到它可能需要您没有存储的环境变量在您的本地计算机上,并需要在其当前生产环境之外 运行 进行一些配置。
如果这是您能够做到的,那么您需要更新前端 API 常量中的 API 域名(例如 http://{APIDOMAIN}/your/route 到 http://localhost:5000/your/route) 以便它在本地进行测试。
好的,NetMage 关于创建虚拟 IIS 目录的建议奏效了!
您可以为您 运行 的 IIS 应用程序创建一个指向本地文件夹的虚拟目录。
- 转到 applicationhost.config 位于 [解决方案文件夹]/.vs/[解决方案名称]/config
- 在配置文档中找到
<sites>
部分
- 找到您的网络应用程序(例如 WebApi)的站点
- 添加指定远程路径并指向本地文件夹的新虚拟目录元素:
<sites>
<site name="App.WebApi" id="1">
<application path="/" applicationPool="App.WebApi AppPool">
<virtualDirectory path="/" physicalPath="C:\Repos\Code\App.WebApi" />
<virtualDirectory path="/Media" physicalPath="C:\Media" /> <--THIS IS MY NEW ONE
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8080:localhost" />
</bindings>
</site>
<sites>
- 现在你可以设置图片的src指向“http://localhost:8080/Media/image.png”,浏览器会认为这是一个远程资源(不再报错) !
我正在编写一个由 C# webapi 应用程序提供服务的 Vue JS 前端。 webapi 指定将图像保存到它自己机器上的 E: 驱动器文件夹,并提供 src 链接供 UIs 使用。
一切都很好,但现在我想在 运行 本地测试所有内容(而且我无权访问 E: 驱动器)。问题:我可以将图像保存到我的 C: 驱动器,但是(出于显而易见的原因)当我尝试显示它们时,UI 浏览器显示“不允许加载本地资源”。
是创建某种远程托管的唯一解决方案吗?或者当文件实际存储在本地时是否可以“欺骗”远程 blob 目标?类似于 Javascript 的 URL.createObjectURL 方法,但在 webapi 中?
如果您可以访问 API 的源代码,您可以在本地构建并 运行 它,考虑到它可能需要您没有存储的环境变量在您的本地计算机上,并需要在其当前生产环境之外 运行 进行一些配置。
如果这是您能够做到的,那么您需要更新前端 API 常量中的 API 域名(例如 http://{APIDOMAIN}/your/route 到 http://localhost:5000/your/route) 以便它在本地进行测试。
好的,NetMage 关于创建虚拟 IIS 目录的建议奏效了!
您可以为您 运行 的 IIS 应用程序创建一个指向本地文件夹的虚拟目录。
- 转到 applicationhost.config 位于 [解决方案文件夹]/.vs/[解决方案名称]/config
- 在配置文档中找到
<sites>
部分 - 找到您的网络应用程序(例如 WebApi)的站点
- 添加指定远程路径并指向本地文件夹的新虚拟目录元素:
<sites>
<site name="App.WebApi" id="1">
<application path="/" applicationPool="App.WebApi AppPool">
<virtualDirectory path="/" physicalPath="C:\Repos\Code\App.WebApi" />
<virtualDirectory path="/Media" physicalPath="C:\Media" /> <--THIS IS MY NEW ONE
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8080:localhost" />
</bindings>
</site>
<sites>
- 现在你可以设置图片的src指向“http://localhost:8080/Media/image.png”,浏览器会认为这是一个远程资源(不再报错) !