我最近开始整合来自https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure的UmbracoFileSystemProviders.Azure,并且能够在我的本地机器上执行以下操作:开发环境......
但是,当我尝试在前端查看图像时出现404错误(即" http://www.sitedomain.com/media/9999/file-name.png")。我认为这是因为该网站仍在尝试在网站中而不是在Azure中查找前端图像(基于在相应的相对位置创建/删除匹配的目录和图像导致图像加载或产生404)。这个问题在多个浏览器中都是一致的。图片上传(无论我是通过Umbraco还是通过Microsoft Azure Storage Explorer上传)。有没有人有任何想法我怎么能解决它?
以下是我使用的所有文件/代码片段,我认为可能与该问题相关(特定于客户端的数据被换出以支持通用数据以确保安全性)......
Config / FileSystemProviders.config的相关部分:
<Provider alias="media" type="Our.Umbraco.FileSystemProviders.Azure.AzureBlobFileSystem, Our.Umbraco.FileSystemProviders.Azure">
<Parameters>
<add key="alias" value="media"/>
</Parameters>
</Provider>
Web.config的相关部分:
<appSettings>
<!--other data here-->
<add key="AzureBlobFileSystem.ConnectionString:media" value="DefaultEndpointsProtocol=https;AccountName=azureaccount;AccountKey=aBcDeFgHiJkLmNoPqRsTuVwXyZ==;EndpointSuffix=core.windows.net" />
<add key="AzureBlobFileSystem.ContainerName:media" value="media-stage" />
<add key="AzureBlobFileSystem.RootUrl:media" value="https://azureaccount.blob.core.windows.net/" />
<add key="AzureBlobFileSystem.MaxDays:media" value="365" />
<add key="AzureBlobFileSystem.UseDefaultRoute:media" value="true" />
<add key="AzureBlobFileSystem.UsePrivateContainer:media" value="false" />
<!--other data here-->
</appSettings>
<location path="Media">
<system.webServer>
<handlers>
<remove name="StaticFileHandler" />
<add name="StaticFileHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />
</handlers>
</system.webServer>
</location>
有关故障排除过程的一些其他说明......
我在GitHub上发现了一些类似的问题(&amp; off out),但我相信我的情况是独一无二的,因为......
我也试过放弃web.config方法&amp;在Config / FileSystemProviders.config中使用以下内容(同样,客户端特定的数据已被广义内容替换),但仍有同样的问题......
<Provider alias="media" type="Our.Umbraco.FileSystemProviders.Azure.AzureBlobFileSystem, Our.Umbraco.FileSystemProviders.Azure">
<Parameters>
<add key="containerName" value="media-stage" />
<add key="rootUrl" value="https://azureaccount.blob.core.windows.net/" />
<add key="connectionString" value="DefaultEndpointsProtocol=https;AccountName=azureaccount;AccountKey=aBcDeFgHiJkLmNoPqRsTuVwXyZ==;EndpointSuffix=core.windows.net"/>
<add key="maxDays" value="365" />
<add key="useDefaultRoute" value="true" />
<add key="usePrivateContainer" value="false" />
</Parameters>
提前感谢您的任何帮助!
答案 0 :(得分:1)
我发现我需要禁用虚拟路径提供程序,否则生成的URL始终是相对的(格式为/media/nnnnn/filename.jpg)。因此,我将其添加到了web.config AppSettings
<add key="AzureBlobFileSystem.DisableVirtualPathProvider" value="true" />
请参见https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure。
这是Umbraco版本7.7.7的版本。