2011-01-25 10 views
0

ASP.NET MVCでMVC Webアプリケーションを作成していますが、これは私の同僚の一人が書いたFlashオブジェクトを提供することになっています。私はフラッシュを知らない。彼はC#/ ASP.NETを知らない。したがって、問題はSOに行く!IIS7.5でFlashオブジェクトが表示されない

私のWebページ上のコードは次のようになります。

<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オブジェクトがロードされません。

私は、Flashオブジェクトを使用可能にするためにIIS上で何かする必要があると推測していますが、それは何ですか?

編集:問題が部分的に解決されました。その手掛かりは "404"エラー(thanks @ Beliskner)に由来しています。

VS開発サーバーで実行しているときは、ルートフォルダがプロジェクトフォルダで、私の場合は "/ FlashStuff"が自分のプロジェクトフォルダから直接読み込まれるため、うまくいきます。

しかし、IISサーバーを実行すると、ルートフォルダは既定のWebサイト(または使用しているサイト)になります。さて、「のhttp:// localhost /をMyTestApp」に設定されたプロジェクトのURLで、私は例えば、「/ MyTestApp」ですべての私のパスをプレフィックスする必要がある。:

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

は、すべてのパスを変更しました。今はうまくいく。

私は現在、展開固有の情報をアプリケーションにハードコードしているので、これはかなり醜い状況です。私のアプリケーションを "MyLiveApp"というフォルダにあるIISサーバーに展開する場合は、ファイル参照を変更する必要がありますどこでも!私がそれをデバッグしたいのであれば、何を?すべての参照を「MyTestApp」に戻してください。

明らかに私はこのような状況に立ち向かう最初の開発者ではなく、私が上記のことをしなければならないことは考えられません。だからこのような状況に対処するためのトリックは何ですか?

答えて

6

IIS MIMEタイプをセットアップしましたか?要求を確認するためにfirefoxのfirebugを使用しましたか?404ingではありませんか?

MIMEタイプ

http://technet.microsoft.com/en-us/library/cc725608(WS.10).aspx - 私は、GUI

拡張を使用することをお勧め:」。swfファイル」

タイプがある: "アプリケーション/ X-衝撃波 - フラッシュ"

Firebugの

Firebugのネットワークモニタ:http://getfirebug.com/network

編集 使用これはあなたの問題を解決するために:http://www.dailycoding.com/Posts/the_script_tag_runatserver_problem_solution_using_resolveurl.aspx

+0

Uhh ...あなたが話していることを知っているわけではないので、答えは "いいえ"と思います! :D –

+0

あなたは行くよ... – Hawxby

+0

OK、私は多かれ少なかれあなたが意味するものに取り組んだ。あなたの最初の質問に答えて:私はMIMEタイプで何も設定しませんでした。しかし、 ".swf"はすでに "application/x-shockwave-flash"としてリストされていることがわかります。 2番目の質問:チャールズを使用すると、 "swfobject.js"の呼び出しが "404ing"であることがわかります。これは、応答が404.0エラーであることを意味しています。 .jsファイルが正しいフォルダにある場合、なぜそれを行うのですか?IISまたはVSデバッガを使用しているのとは異なり、なぜそれが違いますか? –

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

を書き出すjavascript関数であると思いますはい、あなたはサイトごとにIIS 7 MIMEタイプとしてswfファイルを追加する必要があります。 私はこの同じ問題を.mp4ファイルで持っていました

関連する問題