テンプレート化された EPiServer ページのプロパティに含まれる html のフラグメントがあります。その html 内にimg
は、相対 URL を持つタグがあります。
ページを表示すると、タグの src 属性が変更され、接頭辞が付けられていることがわかります/ProjectName/Templates/Pages/
。
HtmlRewriteToExternal
これは、aspx テンプレート (実際には に存在する) と一緒に保存されている画像ファイルが正しく配置されるように行われていることを理解していますTemplates\Pages
が、html フラグメントの一部となることが意図されている画像は、私の場合、実際には以下に保存されます。PageFiles/nnn/
( nnn は実際には親ページの ですPageFolderID
)、変更された html にそれを反映させる必要があります。
クラスを継承しFriendlyUrlRewriteProvider
て登録するクラスを作成しました。アプリケーションをデバッグし、リクエストがオーバーライドされたメソッドを通過するのを見ることができますが、プレフィックスが追加されている場所や変更方法がわからないままです。クラス内で src タグを別の相対パスに変更できますが、プレフィックスはまだ追加されています。
EPiServer の URL 書き換えで見つけられるものはすべて読みましたが、このプレフィックスが追加されている場所や、それを停止または変更する方法についてヒントとなるものは何も見つかりません。
私が読んだこと:
- http://blogs.interakting.co.uk/post/File-Extensions-and-URL-Rewriting-in-EPiServer.aspx
- http://blog.fredrikhaglund.se/blog/2008/05/07/disable-episerver-urlrewriter-interference/ (これには私が探している答えが含まれている可能性があります)
- http://labs.kaliko.com/2010/11/prevent-episerver-urlrewrite.html
- http://sourcecodebean.com/archives/episerver-friendly-urls-for-paginated-pages-and-why-the-asplinkbutton-must-die/510
- http://tedgustaf.com/en/blog/2008/7/create-a-custom-url-rewrite-provider-for-episerver/
- http://tedgustaf.com/en/blog/2011/4/publishing-plain-html-pages-in-episerver/
- http://sdk.episerver.com/library/cms5/Developers%20Guide/Friendly%20URL.htm
- http://sdk.episerver.com/library/cms6.1/html/T_EPiServer_Web_UrlRewriteModule.htm
- http://labs.episerver.com/en/Blogs/Ruwen/Dates/111218/112064/112154/
- http://world.episerver.com/Blogs/Magnus-Strale/Dates/2011/3/Do-we-really-need-yet-another-HTML-parser/
- http://world.episerver.com/Blogs/Yugeen-Klimenko/Dates/2011/6/How-EPiServer-URL-Rewriting-works/
- http://world.episerver.com/Modules/Forum/Pages/Thread.aspx?id=46869
私は実際に達成しようとしていることに対して、まったく異なる解決策を受け入れています。それは次のとおりです。
EPiServer で保存/公開しようとしている静的 html ファイルと関連する画像/css/js ファイルの複数の独立したセットがあります。各セットの構造は次のようになります
- セットフォルダ/
- htmlfileA.html
- htmlfileB.html
- css/
- スタイル.css
- 画像/
- piccy1.png
- piccy2.png
- js/
- Magic.js
セットの EPiServer ページを作成してから、各 html ファイルの子ページを作成し、ファイルからの html を子ページのプロパティに保存する必要があると考えました。現在、関連する setfolder ページの PageFiles に関連する静的ファイルを保存しています。これは、それらを配置する最も論理的に一貫性のある場所と思われるためです。