2011-10-24 2 views
1

Sharepointオブジェクトモデルを使用して、マップされたイメージフォルダに配置されたイメージのURLを取得するにはどうすればよいですか? (追加)私はVisual Webパーツ(私のサイトではProgressWebPartという名前)の一部としてイメージを展開しています。SharepointのマップされたイメージフォルダへのURLは何ですか

答えて

8

あなたは静止画用のサーバー相対URLを使用する必要がありますスラッシュなし)が動作する場合は、Webパーツが2つの別々のサイトで使用されているときに何が起こるかを検討します。これら二つのサイトを訪問するユーザーは、次の画像を要求する:

http://server/site1/_layouts/images/ProgressWebPart/myImage.png 
http://server/site2/_layouts/images/ProgressWebPart/myImage.png 

は、両方の要求がまったく同じファイルを返すにもかかわらず、彼らは異なるURLを持っているので、ブラウザはそれらが別個と考えています。サーバーの相対URLを使用することにより、ユーザーは静的ファイルを一度のみダウンロードするようになります。彼らがあなたのWebパーツを使用している他のサイトを訪問する場合、ブラウザはキャッシュ内のコピーを使用して、時間と帯域幅の両方を節約します。

+0

'/' –

+1

@DennisGeorgeにサイトコレクションが存在しない場合、これは機能しません - 好奇心の念で、どのバージョンのWSSでこれを見ましたか? SP 2010では、すべての/ _layouts /要求がIISのStaticFileHandlerを呼び出す必要があり、ルートサイトは必要ありません。 –

+0

ルートサイトのコレクションがないときには、/ _layouts/*ファイルを呼び出すと問題が発生しましたが、それは2007年のことでした。それ以来、私はそれを認めていましたが、2010年には試していませんでした。テストシナリオを設定して、何が起こるかを確認する必要があります... –

1

これを取得するためにOMを使用する必要はありません。静的であり、ソリューションのパッケージ化方法を決定します。例えば

- SharePoint 2010のためのデフォルトのサイトのロゴはここになります

_layouts /画像/ siteIcon.png

のでhttp://yoursite/_layouts/images/siteIcon.png

とHTP:// yoursite/yoursite/yoursubsite/_layouts /画像/ siteIcon.png

0

それは(私の 'ProgressWebPart' の)であることが判明: "_layouts /画像/ ProgressWebPart /"

など、ImageコントロールにPNGファイルを読み込むにはしてC#で行うことができたよう:サイト相対URLながら

/_layouts/images/ProgressWebPart/myImage.png 

(:

Image image = new Image(); 
image.ImageUrl = "_layouts/images/ProgressWebPart/myImage.png";