0

テンプレート化された EPiServer ページのプロパティに含まれる html のフラグメントがあります。その html 内にimgは、相対 URL を持つタグがあります。

ページを表示すると、タグの src 属性が変更され、接頭辞が付けられていることがわかります/ProjectName/Templates/Pages/

HtmlRewriteToExternalこれは、aspx テンプレート (実際には に存在する) と一緒に保存されている画像ファイルが正しく配置されるように行われていることを理解していますTemplates\Pagesが、html フラグメントの一部となることが意図されている画像は、私の場合、実際には以下に保存されます。PageFiles/nnn/( nnn は実際には親ページの ですPageFolderID)、変更された html にそれを反映させる必要があります。

クラスを継承しFriendlyUrlRewriteProviderて登録するクラスを作成しました。アプリケーションをデバッグし、リクエストがオーバーライドされたメソッドを通過するのを見ることができますが、プレフィックスが追加されている場所や変更方法がわからないままです。クラス内で src タグを別の相対パスに変更できますが、プレフィックスはまだ追加されています。

EPiServer の URL 書き換えで見つけられるものはすべて読みましたが、このプレフィックスが追加されている場所や、それを停止または変更する方法についてヒントとなるものは何も見つかりません。

私が読んだこと:


私は実際に達成しようとしていることに対して、まったく異なる解決策を受け入れています。それは次のとおりです。

EPiServer で保存/公開しようとしている静的 html ファイルと関連する画像/css/js ファイルの複数の独立したセットがあります。各セットの構造は次のようになります

  • セットフォルダ/
    • htmlfileA.html
    • htmlfileB.html
    • css/
      • スタイル.css
    • 画像/
      • piccy1.png
      • piccy2.png
    • js/
      • Magic.js

セットの EPiServer ページを作成してから、各 html ファイルの子ページを作成し、ファイルからの html を子ページのプロパティに保存する必要があると考えました。現在、関連する setfolder ページの PageFiles に関連する静的ファイルを保存しています。これは、それらを配置する最も論理的に一貫性のある場所と思われるためです。

4

2 に答える 2

1

すべてを目の前で見ることなく、最善の解決策を提示することは困難です。しかし、簡単な方法の 1 つは、プロパティをページに出力するときに HTML コードを変更することです。

<%= ChangeRelativeLinks(CurrentPage["HtmlCode"] as string) %> のように

ChangeRelativeLinks(string htmlCode) では、相対リンクと画像を pagedir に絶対パスとして変更する正規表現などを実行します。

于 2012-03-30T14:27:10.037 に答える