2011-02-10 10 views
6

Flashアプリケーションがホストされているドメイン名を変更した後、crossdomain.xmlファイルを変更する必要があります。そのcrossdomain.xmlは、フラッシュアプ​​リケーションで使用されるapi-serverでホストされます。 Flashはブラウザのキャッシュからcrossdomain.xmlを使用していることがわかります。フラッシュをcrossdomain.xmlをキャッシュから取得しないようにするための手口はありますか?多分、オブジェクトタグの呼び出し中にフラッシュするために渡すことができるパラメータがありますか?crossdomain.xmlがキャッシュを防止する

答えて

5

迷惑な問題 - 間違いありません。

まず第一に、私はキャッシングが好きです - 私がコントロールしている限り。 これは、crossdomain.xmlキャッシングをどのように制御できるかです。

たとえば、別のサーバーからの入力が必要なFlashアプリケーションがあります。私の場合は は、我々はこの一回ロードされているので、フラッシュが www.company.com/crossdomain.xml を探しているのFlashVar dataSrc=http://www.company.com/data/calendar.xml

...として設定していると、彼はそれを手動でフラッシュするまでよりは、ユーザーのブラウザのキャッシュから取られました。 、確認してください

company.comのDocumentRootのにその例えばnoCache.company.com/ポイント(!):

ソリューションは、crossdomain.xmlのは、ISTから取られたサブドメインを変更することです。 FlashvarがdataSrc=http://noCache.company.com/data/calendar.xmlに変更されました。実際には、以前と同じファイルを扱っています。

フラッシュはnoCache.company.com/crossdomain.xmlを探しています。これは、そのURLにキャッシュされたファイルがないため、サーバーから取得されます。

あなたはnoCache_ {numeric_value}は、あなたが簡単にhttp://noCache_ {} WEEK_OF_YEARある.company.com /データ/ calendar.xmlにアクセスすることで、独自のTTLを扱うことができるようにサブドメインを許可する場合、それは...あなたの妄想次第です...

crossdomain.xmlが変更されるたびに、その数値を増分することもできます。

+0

はい、同様の方法で問題を解決しました。まだフラッシュ設定だけで解決策を管理するのを待っていました。しかし、フラッシュ設定のみを使用する解決策がない、または誰もそれを知っているように見えません。だからこそ、私はこの答えを実際の解決策として受け入れています。ありがとう。 – Dao

+0

ありがとう!私は(要求?)フラッシュ構成の方法も好むでしょう。これは一般的な問題です... – HBublitz

-3

変更が表示されるまでブラウザでcrossdomain.xmlファイルを直接リロード(F5またはCTRL/CMD-F5)します。クロスドメインファイルのURLをブラウザに入力して、最新の状態にしてください。また、私はブラウザのキャッシュをきれいにするでしょう。

ダウンロードしたファイルがキャッシュされているかどうかを示すFirefoxとFirebugを試してください。

http://getfirebug.com/

幸運、 ロブ

+0

ありがとうの答えのために、しかし、私は、サイトが働いて見たいだけの男ではありません。それを使用したい多くの人がいます。 – Dao

0

私は彼らが などをキャッシュしたくない場合、私は、XMLファイルの末尾に乱数を追加します。 var myXMLURL:String = "myXML.xml?r =" + Math.random()* 1000;

ブラウザでは、別のファイルとして表示されます。 myXML.xml?r = 645/myXML.xml?r = 239

これがcrossdomain.xmlファイルで動作するかどうかはわかりませんが、すばやく試してみる価値があります。

+3

'crossdomain.xml'がFlashの内部メカニズムによって呼び出されていることを理解していますので、私はcrossdomain.xmlを物理的に直接ロードすることはできません。このリクエストにどのように影響を与えるかを知っていて、それにパラメータを追加する場合は、共有してください。 – Dao

+3

デフォルトでは、Flashはcrossdomain.xmlをドメインのベースに要求しますが、Security.loadPolicyFile(str:String)を呼び出すことで設定できます。 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/system/Security.html#loadPolicyFile() –

+1

@TrevorBoyle:Security.loadPolicyFile()を取得して、古いcrossdomain.xmlのバージョンはすでにキャッシュされていますが、私は見落としている可能性があることは明らかですか? –

1

使用ファイルのキャッシュポリシーを指定するためにApacheのディレクティブを次

<Directory /var/www/mysite> 
    <FilesMatch "crossdomain.xml"> 
    Header set Cache-Control "max-age=86400, public, must-revalidate" 
    </FilesMatch> 
</Directory> 
関連する問題