【发布时间】:2023-03-10 10:20:01
【问题描述】:
我在 ASP.NET Core 3.1 的一个非常基本的设置中加载 dzi 磁贴时遇到问题。我之前在 IIS 上运行的 ASP.NET 网站中使用了相同的设置,其中相同的 dzi 磁贴可以正常工作。
<body style="width: 100%; height: 100%;">
<div id="seadragon1" role="application" aria-label="seadragon viewer" style="width:100%; height: 100%">
</div>
<script src="~/js/openseadragon-2.4.2.js"></script>
<script>
var seadragon = OpenSeadragon({
id: 'seadragon1',
prefixUrl: '/img/',
tileSources: '/media/sample.dzi'
});
</script>
</body>
.dzi 文件作为相对 url 传递给 OpenSeadragon 对象,并成功获取。所有导航图像都已成功获取,但没有出现导航按钮。但是,只获取了一个图像块:/media/sample/sample_files/0/0_0.jpg。控制台中没有出现错误。画布设置好了,只是完全是空的。没有迹象表明为什么没有获取更多的图块 - 只是没有尝试获取它们。如果我手动尝试访问浏览器中的任何图块(例如/media/sample/sample_files/10/0_0.jpg),它们都可用并且加载正常。 IE。平铺图像在那里并且可以提供。
当我将相同的 dzi 文件和磁贴传递给在 IIS 上运行的旧 ASP.NET 网站中的相同设置时,一切正常。两种场景中的 html 和 javascript 在字面上是相同的。这两种方案的根本区别在于,asp.net core 运行在内置的 Kestrel 服务器上,而不是 IIS。我很困惑为什么这会对 OpenSeadragon 的行为产生任何影响。
为了彻底,我将 asp.net 核心站点发布到 IIS 服务器。从技术上讲,IIS 代理服务器上的 Kestrel,但我可以尽可能地缩小 asp.net 核心网站和基于 .net 框架的旧式 asp.net 网站之间的差距。
还有……同样的问题。以下是已发布的站点供参考:https://andi2.andornot.com/seadragon?dzi=/media/seadragon/sample.dzi。
任何有根据的猜测都会有所帮助。
【问题讨论】:
标签: asp.net openseadragon deepzoom