我目前正在尝试使用以下语法src="@Html.C1().MediaUrl(b.SWFFile)"
但正在输出的路径是
src="/media/0f923295-713b-418d-afbf-17675cdb6d9e/Banner Ads/Flash/728x90_swf"
为什么Composite C1将文件扩展名更改为_swf?我使用不正确的功能来引用媒体文件吗?
答案 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");
}