复合C1 - 显示上载的SWF文件

时间:2012-09-12 10:25:25

标签: c1-cms

我目前正在尝试使用以下语法src="@Html.C1().MediaUrl(b.SWFFile)"

显示SWF文件

但正在输出的路径是

src="/media/0f923295-713b-418d-afbf-17675cdb6d9e/Banner Ads/Flash/728x90_swf"

为什么Composite C1将文件扩展名更改为_swf?我使用不正确的功能来引用媒体文件吗?

1 个答案:

答案 0 :(得分:1)

在内置媒体网址中没有使用扩展名有两个原因:

1)如果您运行的是IIS6或IIS7经典模式,IIS可能无法将请求传递给ASP.NET(因为扩展名),因此C1将无法提供服务。

2)在IIS7的默认设置中有很多扩展,其中存在使IIS返回404(例如.config,.master和.cs)。

我猜你有一个flash播放器没有播放文件的问题,问题在这里报告http://compositec1.codeplex.com/workitem/1379,它可能是下一个版本中的地址。

目前我建议使用以下代码生成Flash网址作为解决方法

protected string GetMediaUrl(string mediaPath)
{
    string[] parts = mediaPath.Split(new[] { ':' });

    string mediaStore = parts[0];
    Guid mediaId = new Guid(parts[1]);

    string mediaUrl = MediaUrls.BuildUrl(new MediaUrlData { MediaStore = mediaStore, MediaId = mediaId, QueryParameters = new NameValueCollection() },
                                         UrlKind.Public);

    // Temporary fix, allows media player to receive a nice url with an extension
    return mediaUrl.Replace("_jpg", ".jpg").Replace("_mov", ".mov").Replace("_m4v", ".m4v").Replace("_swf", ".swf");
}