首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Umbraco / Azure Blob存储-能够在Umbraco中上传图像和视图,但在前端得到404个错误

Umbraco / Azure Blob存储-能够在Umbraco中上传图像和视图,但在前端得到404个错误
EN

Stack Overflow用户
提问于 2018-03-26 18:30:07
回答 1查看 880关注 0票数 0

最近,我从https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure开始集成https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure,并且能够在本地机器上完成以下工作&一个开发环境.

  1. 我可以登录到Umbraco (v7.3.1/a1.0.5780.28249),上传一个图像&让它出现在Azure blob存储的适当容器中。
  2. 我可以在其相应的蓝色地址(即"https://azureaccount.blob.core.windows.net/media-stage/9999/file-name.png")查看图像
  3. 我可以在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中找到前端映像(基于创建/删除匹配目录&在适当的相对位置上的图像会导致图像加载或生成404的事实)。这个问题在多个浏览器中是一致的&图像上传(无论我是通过Umbraco还是通过上传)。有人知道我怎么能解决这个问题吗?

下面是我使用的所有文件/代码片段,我认为它们可能与问题有关(为了安全起见,交换了特定于客户端的数据以支持通用数据).

Config/FileSystemProviders.config的相关部分:

代码语言:javascript
运行
复制
    <Provider alias="media" type="Our.Umbraco.FileSystemProviders.Azure.AzureBlobFileSystem, Our.Umbraco.FileSystemProviders.Azure">    
      <Parameters>  
        <add key="alias" value="media"/>  
      </Parameters>  
    </Provider>

Web.config的相关章节:

代码语言:javascript
运行
复制
    <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上看到过一些类似的问题,但我相信我的情况是独一无二的,因为.

  1. 当我查看项目或umbraco后端时,我没有看到配置错误(与https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/103一样)
  2. 我的Umbraco是7.3.1版(而不是7.5+,比如https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/57)。
  3. 注释掉web配置中的图像处理器并不能解决这个问题(与https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure/issues/27一样)

我还尝试过放弃web.config方法&在Config/FileSystemProviders.config中使用以下方法(同样,特定于客户端的数据已被通用数据替换),但仍然存在相同的问题.

代码语言:javascript
运行
复制
    <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>

谢谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-15 16:44:33

我发现我需要禁用虚拟路径提供程序,否则生成的URL总是相对的(表单/media/nnnnn/filename.jpg)。因此,我将其添加到web.config AppSettings中。

代码语言:javascript
运行
复制
<add key="AzureBlobFileSystem.DisableVirtualPathProvider" value="true" />

https://github.com/JimBobSquarePants/UmbracoFileSystemProviders.Azure

这是与Umbraco版本7.7.7。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49498280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档