我正在ASP.NET MVC中编写一个MVC Web应用程序,该应用程序应该是由我的一位同事编写的Flash对象。我不知道任何Flash;他不懂任何C#/ ASP.NET;所以问题就是SO!
我网页上的代码如下所示:
<head>
(blah blah blah...)
<script type="text/javascript" src="/FlashStuff/js/swfobject.js"></script>
<script type="text/javascript">
var GP_MLM_flashvars = {};
GP_MLM_flashvars.remote = 'true';
GP_MLM_flashvars.streamprovider = 'localweb';
GP_MLM_flashvars.referer = '';
GP_MLM_flashvars.bgcolor = '#000033';
var GP_MLM_params = {};
GP_MLM_params.menu = 'false';
GP_MLM_params.allowFullScreen = 'true';
GP_MLM_params.salign = 'tl';
GP_MLM_params.scale = 'noscale';
GP_MLM_params.wmode = 'opaque';
GP_MLM_params.bgcolor = '#000033';
var GP_MLM_attributes = {};
GP_MLM_attributes.id = 'GP_MLM';
GP_MLM_attributes.name = 'GP_MLM';
swfobject.embedSWF('/FlashStuff/swf/GP_MLM.swf', 'GP_MLM', '100%', '100%', '9', '/FlashStuff/expressInstall.swf', GP_MLM_flashvars, GP_MLM_params, GP_MLM_attributes);
</script>
</head>
(etc.)
当我使用VS Development Server调试此页面时,它看起来非常愉快并且工作正常。但是,如果我尝试使用本地IIS(7.5)服务器进行调试,则Flash对象不会被加载。
我猜我需要在IIS上做一些事情来启用Flash对象 - 但是什么?
编辑:问题部分解决;线索来自“404”错误(感谢@Beliskner)。
当您在VS Development Server下运行时,您的根文件夹似乎是项目文件夹,在我的情况下,“/ FlashStuff”直接来自我的项目文件夹,因此工作正常。
但是当您运行IIS服务器时,根文件夹是默认网站(或您正在使用的任何网站)。现在,将项目URL设置为“http:// localhost / MyTestApp”,我必须在所有路径前加上“/ MyTestApp”,例如:
<script type="text/javascript" src="/MyTestApp/FlashStuff/js/swfobject.js"></script>
改变了所有路径;现在工作正常。
现在这是一个相当丑陋的情况 - 因为我现在很难将部署特定信息编码到我的应用程序中!因此,如果我决定将我的应用程序部署到名为“MyLiveApp”的文件夹中的IIS服务器上,我必须四处更改文件引用无处不在!如果我想调试它 - 那么什么?将所有引用更改回“MyTestApp”?
显然,我不是第一个遇到这种情况的开发者,你不得不做我上面所说的话是不可想象的。那么处理这种情况的诀窍是什么呢?
答案 0 :(得分:6)
您是否设置了IIS MIME类型?您是否使用过firefox firebug来检查请求是不是404ing?
Mime类型
http://technet.microsoft.com/en-us/library/cc725608(WS.10).aspx - 我建议使用GUI
扩展名:“。swf”
类型是:“application / x-shockwave-flash”
<强>萤火虫强>
Firebug网络监视器:http://getfirebug.com/network
修改强> 使用它来解决您的问题:http://www.dailycoding.com/Posts/the_script_tag_runatserver_problem_solution_using_resolveurl.aspx
答案 1 :(得分:0)
尝试将Flash对象嵌入到html页面的正文中
<head> (blah blah blah...)
<script type="text/javascript" src="/FlashStuff/js/swfobject.js"></script>
</head>
<body>
<script type="text/javascript">
var GP_MLM_flashvars = {};
GP_MLM_flashvars.remote = 'true';
GP_MLM_flashvars.streamprovider = 'localweb';
GP_MLM_flashvars.referer = '';
GP_MLM_flashvars.bgcolor = '#000033';
var GP_MLM_params = {};
GP_MLM_params.menu = 'false';
GP_MLM_params.allowFullScreen = 'true';
GP_MLM_params.salign = 'tl';
GP_MLM_params.scale = 'noscale';
GP_MLM_params.wmode = 'opaque';
GP_MLM_params.bgcolor = '#000033';
var GP_MLM_attributes = {};
GP_MLM_attributes.id = 'GP_MLM';
GP_MLM_attributes.name = 'GP_MLM';
swfobject.embedSWF('/FlashStuff/swf/GP_MLM.swf', 'GP_MLM', '100%', '100%', '9', '/FlashStuff/expressInstall.swf', GP_MLM_flashvars, GP_MLM_params, GP_MLM_attributes);
</script>
(etc.)
</body>
我猜embedSWF是一个javascript函数,用于写出object
标记
答案 2 :(得分:0)
是的,您需要为每个站点添加swf作为IIS 7 mime类型。 我在.mp4文件中遇到了同样的问题