1

SharePoint 2010 でカスタムのブランド化されたマスター ページを作成しています。レガシー ページと同様のページを作成するために、マスター ページに直接配置した HTML ベースのカスタム ドロップダウン ナビゲーション メニューを実装しました (基本的な HTML 要素の UL と LI で構成され、 CSS クラスでスタイル設定されたタグ)。

ページ上の基本的な HTML からのリンクは、現在実施されている代替アクセス マッピングの対象になると思いましたが、そうではないようです。3 つの異なる URL ( http://sharepoint2010http://sharepoint2010.mydomain.comhttps://sharepoint2010.mydomain.com ) で開いたテスト ページでは、WIKI ページからのリンクは期待どおりに変更されていますが、カスタム ナビゲーション メニュー (マスター ページのプレーン HTML) からのリンクは変更されません。

それがどこで役立つかはわかります...しかし、SharePoint が最初にリンクを解析して、代替アクセス マッピングの変換の対象にする方法で、MasterPage にリンクを追加する方法はありますか? SPLinkBut​​ton コントロール内にリンクを配置しようとしましたが、目的の動作が実現しませんでした。

例えば

<ul id="navmenu">
  <li><SharePoint:SPLinkButton runat="server" NavigateUrl="http://sharepoint2010">sharepoint link</SharePoint:SPLinkButton></li>
  <li><a href="http://sharepoint2010">sharepoint2010</a></li>
  <li>test</li>
</ul>

https://sharepoint2010.mydomain.com経由でページにアクセスすると、上記のリンクはまだhttps://sharepoint2010.mydomain.comではなくhttp://sharepoint2010のままです

何かご意見は?

ありがとう、

ビクター

編集(明確化):フォールバックとして相対リンクを使用することを計画していました。しかし、私たちがやっていることの目的のために、完全なリンクを保持して AAM を使用できれば、より保守しやすくなります。標準の相対リンクが可能であることは承知しています。特定のリンク構文または制御フレームワークを提供することで、マスター ページ コンテンツ (または今後の外部サービスから取得されるコンテンツ) で AAM を使用する方法があるかどうかを特定したいと考えていました。

4

3 に答える 3

2

リンクが同じドメインにあり、管理パスを使用していない場合は、ホスト名を再挿入する必要はありません。リンクを相対的に保つことで、IIS のバインドと SharePoint の AAM セットアップが追加作業なしで機能することが保証されます。

それ以外の場合は、利用可能な ~sitecollection および ~site SPUrl トークンを使用して、現在のサイト コレクションの URL または現在の Web URL を取得することを強くお勧めします。式が処理されるため、サーバー側で実行されているものにラップする必要があります...サーバー側。

例えば:

<asp:Literal runat="server" Text="<% $SPUrl:~site/press-releases/ %>"/>

それが役に立ったことを願っています

于 2012-04-08T19:49:17.627 に答える
1

SPLinkBut​​ton の NavigateUrl= 属性を使用すると、SharePoint は、通常の PostBack JavaScript コードの代わりに、href= を使用して単純なアンカーをレンダリングします。ここでは、代替アクセス マッピングは役割を果たしません。

于 2012-04-07T16:52:05.583 に答える
1

単に相対リンクが必要な場合は、dns エントリを完全に省略し (つまり、AAM で切り替える URL の一部)、URL をスラッシュで開始して相対リンクにします。これがニーズを満たさない場合、Sharepoint が行う方法は、相対 URL トークンを使用することです。v4.master で、現在の Web とサイト コレクションをそれぞれ参照する 'site' または 'sitecollection' が後に続くチルダ文字を確認してください。このメソッドをコピーします。詳細については、次のリンクを参照してください: http://msdn.microsoft.com/en-us/library/ms473643.aspx

于 2012-04-07T17:24:34.677 に答える