2011-01-25 68 views
0

我在ASP.NET MVC中編寫了一個MVC web應用程序,該應用程序應該提供一個由我的同事編寫的Flash對象。我不知道任何Flash;他不知道任何C#/ ASP.NET;所以問題就來了!IIS7.5不顯示Flash對象

我的網頁上的代碼如下所示:

<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開發服務器這個頁面,這一切都顯得非常開心和正常工作。但是,如果我嘗試使用本地IIS(7.5)服務器進行調試,則Flash對象不會被加載。

我猜我需要在IIS上做一些事情來啓用使用Flash對象 - 但是什麼?

編輯:問題部分解決;線索來自「404」錯誤(謝謝@Beliskner)。

看來,當你在VS開發服務器下運行時,你的根文件夾是項目文件夾,在我的情況下,「/ FlashStuff」直接離開我的項目文件夾,所以工作正常。

但是,當您運行IIS服務器時,根文件夾是默認網站(或您正在使用的任何網站)。現在,一個項目的URL設置爲「HTTP://本地主機/ MyTestApp」,我有「/ MyTestApp」,例如:

<script type="text/javascript" src="/MyTestApp/FlashStuff/js/swfobject.js"></script> 

改變了所有的路徑前綴我的所有路徑;現在工作正常。

雖然現在這是一個非常醜陋的情況 - 因爲我現在正在將特定於應用的信息編碼到我的應用程序中!因此,如果我決定將我的應用程序部署到名爲「MyLiveApp」的文件夾中的IIS服務器上,則必須隨處更改文件引用無處不在!如果我想調試它 - 那麼是什麼?將所有參考文獻改回「MyTestApp」?

很明顯,我不是第一個遇到這種情況的開發者,而且你不得不按照我上面所說的去做。那麼處理這種情況有什麼竅門?

回答

6

您是否設置了IIS MIME類型?你用firefox的螢火蟲來檢查請求是不是404?

MIME類型

http://technet.microsoft.com/en-us/library/cc725608(WS.10).aspx - 我建議使用GUI

擴展名:」。SWF」

類型是: 「應用程序/ x - 衝擊波閃光」

螢火蟲

Firebug的網絡監控:http://getfirebug.com/network

編輯 使用此解決你的問題:http://www.dailycoding.com/Posts/the_script_tag_runatserver_problem_solution_using_resolveurl.aspx

+0

呃......我想答案是「否」,因爲我沒有最想知道你在說什麼! :D – 2011-01-25 15:34:23

0

嘗試在您的html頁面的主體中嵌入Flash對象

<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是寫出來的object標籤

0

是的,你需要添加SWF爲每個網站IIS 7 MIME類型的JavaScript函數。 我有同樣的問題.mp4文件