I have a website using asp.net mvc in which I need to embed a flash file in view. I am unable to set the relative path for the flash file. Given below is the code I am using:
AC_FL_RunContent( 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0', 'width', '487', 'height', '359', 'menu', 'false', 'movie', 'images/butterfly', 'quality', 'high', 'allowscriptaccess', 'sameDomain', 'pluginspage', 'http://www.macromedia.com/go/getflashplayer' );
where I copied butterfly.swf in a directory called images. images directory resides in the views folder.
If I use code behind( default.aspx default.aspx.cs) in a different solution with the same folder strucuture, browser is able to load the flash file.
Could you please throw some light on the MVC folder structure issue??
Thanks a lot.
This is because you are requesting a url like:
"/Content/Details/1" so that relative path will point at:
"/Content/Details/1/images/butterfly". You don't have that folder on your server, so therefore it will not be found. Instead you can resolve the url server side so that it will find the correct folder. Just change
<%=ResolveUrl("~/images/butterfly.swf")%> and move the folder out of your views folder as files can not be requested in the views folder by default. If you really want to have it in the views folder you will have to change the
web.config in the views folder to allow that.
Remember that relative paths like yours will be resolved client side. This is nothing special to asp.net mvc. The client doesn't know what serverside framework you are using. The client just looks at the url and resolve it from there.