2015-10-05 79 views
0

我很擅長Razor/MVC,但對Umbraco來說很新。我有一個源代碼設計,其中包含一個Jpeg和一個包含在SVG中的灰度PNG,這樣我可以在比通常少得多的內存中獲得透明背景圖像。Umbraco媒體類型中的多個圖像SVG文件

只是想知道我怎麼能成立一個一把umbraco媒體類型是放置SVG文件,並且支持位圖到同一文件夾。

我試圖創建具有3個上傳通道一個新的媒體類型,並創建新的類型的文件夾類型,但是當我看着我的文件夾/媒體/ 1071,它僅包含了SVG。

有沒有辦法讓一把umbraco所有3個文件上傳到同一個文件夾,這樣的SVG文件可以找到支持文件?

感謝,

馬克

回答

0

我不知道這是一把umbraco正確的做法,但我還是設法讓我的透明JPEG類型的事情工作。

而不是使一個新的媒體類型的,我做了一個新的文檔類型。我也爲文檔類型創建了一個默認模板。

通過爲文檔類型添加兩個媒體選擇器屬性,並將模板中的Content-Type設置爲「image/svg + xml」,我可以從模板中隨時生成相應的SVG文件。

所以這裏是我的新DocType的模板。

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage 
@{ 
    Layout = null; 

    UmbracoContext.HttpContext.Response.ContentType = "image/svg+xml"; 

    var colourLayer = Umbraco.Media(Umbraco.Field("colourLayer").ToString()); 
    var maskLayer = Umbraco.Media(Umbraco.Field("maskLayer").ToString()); 
}<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> 
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 @colourLayer.umbracoWidth @colourLayer.umbracoHeight" enable-background="new 0 0 @colourLayer.umbracoWidth @colourLayer.umbracoHeight" xml:space="preserve"> 
    <image overflow="visible" width="@colourLayer.umbracoWidth" height="@colourLayer.umbracoHeight" mask="url(#imgmask)" xlink:href="@colourLayer.umbracoFile" /> 
    <mask id="imgmask"> 
    <image overflow="visible" width="@colourLayer.umbracoWidth" height="@colourLayer.umbracoHeight" xlink:href="@maskLayer.umbracoFile" /> 
    </mask> 
</svg> 

請讓我知道,如果這不是如何在Umbraco做的事情。我更喜歡用系統來對付它。