Umbraco / Azure Blob Storage - 能够在 Umbraco 中上传图像和查看,但在前端出现 404 错误
Umbraco / Azure Blob Storage - Able to upload images & view in Umbraco, but getting 404 Errors on front-end
我最近开始从 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure 集成 UmbracoFileSystemProviders.Azure 并且能够在我的本地计算机和开发环境上执行以下操作...
- 我可以登录 Umbraco (v7.3.1/a1.0.5780.28249),上传图片 &
让它出现在我们 Azure blob 上的适当容器中
存储
- 我可以在相应的 Azure 地址(即“https://azureaccount.blob.core.windows.net/media-stage/9999/file-name.png”)查看图片
- 我可以在 Umbraco 的后端查看图像(即“http://localhost:99999/umbraco/backoffice/UmbracoApi/Images/GetBigThumbnail?originalImagePath=%2Fmedia%2F9999%2Ffile-name.png”)
但是,当我尝试在前端(即“http://www.sitedomain.com/media/9999/file-name.png”)查看图像时出现 404 错误。我认为这是因为该站点仍在尝试在站点内而不是在 Azure 中查找前端图像(基于 creating/removing 在适当的相对位置的匹配目录和图像导致图像加载的事实或产生 404)。这个问题在多个浏览器和图像上传中是一致的(无论我是通过 Umbraco 还是通过 Microsoft Azure Storage Explorer 上传)。有谁知道我该如何解决它?
以下是我正在使用的所有 files/code 片段,我认为这些片段可能与该问题相关(为了安全起见,特定于客户端的数据已换成通用数据)...
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 上看到过一些类似的问题(并关闭),但我相信我的情况是独一无二的,因为...
- 我在查看项目时没有看到配置错误,或者
Umbraco 后端(与
https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/103)
- 我的 Umbraco 是 7.3.1 版(而不是像 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/57 那样的 7.5+)
- 在网络配置中注释掉图像处理器并不能解决问题(与
https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/27)
我也尝试过放弃 web.config 方法并在 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>
在此先感谢您的帮助!
我发现我需要禁用虚拟路径提供程序,否则生成的 URL 总是相对的(形式为 /media/nnnnn/filename.jpg)。因此我将其添加到 web.config AppSettings
<add key="AzureBlobFileSystem.DisableVirtualPathProvider" value="true" />
参见 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure。
这是 Umbraco 版本 7.7.7。
我最近开始从 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure 集成 UmbracoFileSystemProviders.Azure 并且能够在我的本地计算机和开发环境上执行以下操作...
- 我可以登录 Umbraco (v7.3.1/a1.0.5780.28249),上传图片 & 让它出现在我们 Azure blob 上的适当容器中 存储
- 我可以在相应的 Azure 地址(即“https://azureaccount.blob.core.windows.net/media-stage/9999/file-name.png”)查看图片
- 我可以在 Umbraco 的后端查看图像(即“http://localhost:99999/umbraco/backoffice/UmbracoApi/Images/GetBigThumbnail?originalImagePath=%2Fmedia%2F9999%2Ffile-name.png”)
但是,当我尝试在前端(即“http://www.sitedomain.com/media/9999/file-name.png”)查看图像时出现 404 错误。我认为这是因为该站点仍在尝试在站点内而不是在 Azure 中查找前端图像(基于 creating/removing 在适当的相对位置的匹配目录和图像导致图像加载的事实或产生 404)。这个问题在多个浏览器和图像上传中是一致的(无论我是通过 Umbraco 还是通过 Microsoft Azure Storage Explorer 上传)。有谁知道我该如何解决它?
以下是我正在使用的所有 files/code 片段,我认为这些片段可能与该问题相关(为了安全起见,特定于客户端的数据已换成通用数据)...
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 上看到过一些类似的问题(并关闭),但我相信我的情况是独一无二的,因为...
- 我在查看项目时没有看到配置错误,或者 Umbraco 后端(与 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/103)
- 我的 Umbraco 是 7.3.1 版(而不是像 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/57 那样的 7.5+)
- 在网络配置中注释掉图像处理器并不能解决问题(与 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/27)
我也尝试过放弃 web.config 方法并在 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>
在此先感谢您的帮助!
我发现我需要禁用虚拟路径提供程序,否则生成的 URL 总是相对的(形式为 /media/nnnnn/filename.jpg)。因此我将其添加到 web.config AppSettings
<add key="AzureBlobFileSystem.DisableVirtualPathProvider" value="true" />
参见 https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure。
这是 Umbraco 版本 7.7.7。