我有一个响应式设计的 Sitecore 7 解决方案,我想要将 svg 文件添加到媒体库中,并使其像 jpg、jpeg 图片一样被处理。当我上传 svg 文件时,它们被处理为媒体文件而不是图片文件。
<mediaType name="SVG image" extensions="svg">
<mimeType>image/svg+xml</mimeType>
<forceDownload>false</forceDownload>
<sharedTemplate>system/media/unversioned/image</sharedTemplate>
<versionedTemplate>system/media/versioned/image</versionedTemplate>
<mediaValidator type="Sitecore.Resources.Media.ImageValidator"/>
<thumbnails>
<generator type="Sitecore.Resources.Media.ImageThumbnailGenerator, Sitecore.Kernel">
<extension>png</extension>
</generator>
<width>150</width>
<height>150</height>
<backgroundColor>#FFFFFF</backgroundColor>
</thumbnails>
</mediaType>
另外,请在配置文件中注册SVG文件的MIME类型。
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
</staticContent>
</system.webServer>
</configuration>
从Sitecore 8.1 Update 2开始,配置更新已默认包含。经过测试,在媒体库上传和RTE字段以及GlassMapper中都通过了测试。
<configuration xmlns:patch="www.sitecore.net/xmlconfig">
<sitecore>
<mediaLibrary>
<mediaTypes>
<mediaType name="SVG image" extensions="svg">
<mimeType>image/svg+xml</mimeType>
<forceDownload>false</forceDownload>
<sharedTemplate>system/media/unversioned/image</sharedTemplate>
<versionedTemplate>system/media/versioned/image</versionedTemplate>
<mediaValidator type="Sitecore.Resources.Media.ImageValidator"/>
<thumbnails>
<generator type="Sitecore.Resources.Media.ImageThumbnailGenerator, Sitecore.Kernel">
<extension>png</extension>
</generator>
<width>150</width>
<height>150</height>
<backgroundColor>#FFFFFF</backgroundColor>
</thumbnails>
</mediaType>
</mediaTypes>
</mediaLibrary>
</sitecore>
</configuration>