• エイリアスパスを使用した場合のテンプレートでのURLの指定方法#

  • nana Reply #1, 4 years, 3 months ago

    Reply
    こんにちは。

    エイリアスパスを使用するに設定したところ、フォルダに入っているHTMLのみ
    CSSが反映されません。

    エイリアスパスの注意書きに
    注意: このオプションが「Yes」にするとき、即ちエイリアスパスを使用するときは、ドキュメントから参照するものは全て(画像とかCSSとか JavaScriptなど)絶対パスで指定する必要があります。例えば、assets/imagesに対しては/assets/imagesと指定しなければなりません。そうしないとエイリアスパスからの相対パスとなり、期待した参照にはなりません。
    とあるので、パスを書き換えたいのですが、全ページ同じテンプレートを使用しているので、
    うまく書き換えられません。

    フォルダを作るごとに、テンプレートも増やさなくてはならないのでしょうか?

    以下の設定で、A.htmlは正常に表示されますが、C.htmlは
    <link href="D/e.css.html" />
    となってしまうので、cssが適用されません。
    href="../D/e.css.html" とフォルダの位置にあわせて変化するような
    指定の方法はあるのでしょうか。

    良い設定方法をご存じの方よろしくお願いいたします。

    ----ファイル構成-----------------------------------
    A.html
    Bフォルダ
      C.html
    Dフォルダ
      E.css(5)

    ----テンプレート(正確には、チャンクです)-----------------
     ←ここの指定の仕方です。
    </head>
    <body>

    ----管理画面の設定-----------------------------------
    フレンドリーURLの使用:Yes
    フレンドリーURLの接頭辞:(空欄)
    フレンドリーURLの接尾辞:.html
    フレンドリーエイリアス:Yes
    エイリアスパスを使用:Yes
    重複エイリアスを許可:No
    自動エイリアス生成:No
    ----------------------------------------------------


  • zero_07 Reply #2, 4 years, 3 months ago

    Reply
    テンプレートにBASE HREFタグをつけてください。
    <base href="http://hostname/"
     />
    

    が、
    <link rel="stylesheet" type="text/css" href="/[~5~]" />ã
    

    リンク先の指定に/が頭についているのであれば、必ず/xxxx.cssになるはずなんですが・・ BASEタグをつけたくなければ、直接/style.cssとかエイリアス名を書いちゃうのも手です。

    ちなみに、MODxの[~id~]は必ず相対パスで出力されますので、BASEタグを付けるのが後々よろしいかと思います。


  • nana Reply #3, 4 years, 3 months ago

    Reply
    こんにちは、お返事ありがとうございます。

    baseタグで無事解決いたしました!

    本当にありがとうございました。またよろしくお願いします。