質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • PHP

    20282questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Smarty

    173questions

    Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

smartyテンプレートとIE11について

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 539

xjaPANDA

score 107

独自のMVCフレームワークに、smarty3.1を利用していますが、Internet Explorer11で観覧した時だけ、トップのページ以外のページの画像のURLやリンクのULRがうまく表示されません。独自のフレームワークといっても構造は、index.php?にコントローラーとアクションパラメーターを渡した一般的なものです。

例えば、http://example.com/index/index/ では、Indexコントローラーのindexアクションを実行したページになりますが、これをトップページに設定しています。

この時に、Internet Explorer11で観覧した場合に、http://example.comにアクセスした場合には、問題なくしっかり表示されます。この場合、例えば、ロゴの画像のURLは、http://example.com/images/logo.png のように正常です。一方で、同一の内容である、http://example.com/index/index/ にアクセスした場合には、http://example.com/index/index/images/logo.png となり、ルートのURLがずれてしまうので、うまく表示されません。この解決方法に心当たりがありましたら、アドバイスください。

(Google Chrome, Firefox,Edge,Operaなどで観覧確認しても、問題なく、表示されます。)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

ソースを確認しても Smarty がテンプレート上に出力する画像の URL が意図通りではないという話ではなく、IE11 で閲覧した時にだけ画像がリダイレクトしてしまう、という理解で合っていますか?

そうであれば URL のリダイレクトがおかしいという話かと思うので、意図的に IE 分岐の記述がない限り Smarty は関係ないかと思います。

一度 IE のキャッシュをクリアしてみてはどうでしょうか。

また、.htaccess や httpd.conf 等の設定を記載された方が問題の手助けになりやすいかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/19 20:14

    ありがとうございます。アドバイスをもとに少しづつ前進しております。
    キャッシュを消しても変化はなく、いろいろ可能性をつぶしていくと、どうも、ビューの共通部分を書いたconfファイルに baseタグで、<base href="http://example.com/">としているのですが、このタグが、IE11では、反映されていないようでした。ただいま、baseタグは、IE11では表示できないかもしれないので、こちらの代替タグのようなものがないか調べてます。または、違うやり方の方が適しているのかもしれません。

    キャンセル

  • 2017/01/19 20:25

    HTML自体の問題ということですね。
    こんな情報もありました。
    http://www.tohoho-web.com/html/base.htm
    「<base> を head要素以外の場所に記述したり、相対URLを指定した場合、Internet Explorer では無効になるので注意してください。」
    baseタグを使わないように書き換えるか、mod_rewrite等で強制的に書き換えるのが現実的かもしれませんね。

    キャンセル

  • 2017/01/20 08:53 編集

    ありがとうございました。解決方法として、<base>タグを使わないやり方を選択しました。ルートのURLをそれぞれの箇所で読み込むことにしました。smartyテンプレートの共通箇所は、これまでは、すべて、confファイルに一括して定義していたので、その為に、confの中で、php変数が使えませんでした。これだと、変数に入れた、ルートのURLを読み込めないので、それらをパートごとにtplファイルに分けて記載し、そこに、変数を読み込むことで解決しました。ただ、mod_rewriteのほうでのやり方も興味がありますので、こちらも検索していろいろ調べております。まだできていませんが、こちらのほうが複雑ですね(涙)

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Edgeでlocalhostを見る方法

    Edgeでlocalhostを見る方法について設定についてご存知の方教えてください!

  • 受付中

    IE11でPDFファイルを開く際に

    IE11を利用して、PDFファイルを開く際に通知バーの 挙動がおかしくなってしまいました。 現在は、既定のレベル設定へ戻して利用しているのですが、 挙動がおかしくなったときの設定を

  • 解決済

    Excel VBA のinternetexplorer.applicationを使用して あるサイト...

    あるサイトの情報を自動取得したいのですがうまくいきません。 やりたいこととしては自動ログインしてログイン成功後のページ の特定のAタグをクリックして表示されたページの情報の

  • 受付中

    IE互換モード設定の取得

    IEのトラブル対応の情報収集のためのツールを作っています。 互換表示のレジストリは HKEY_CURRENT_USER\Software\Microsoft\Internet 

  • 解決済

    Chromeでcsvを開きたい

    前提・実現したいこと jqueryでプログラムを書いています。ajaxでcsvファイルを読み込みたいのですが。Choromeではうまくいきません。 ChromeでAjaxを用い

  • 解決済

    IE11での通知バーの位置

    前提・実現したいこと 前提条件:Windowsのタスクバーを自動的に隠すにしている。 要望:通知バーの位置を変更したい。(お客様の要望で、ダイアログ等ではなく、通知バーで対応し

  • 解決済

    svgファイルの画像でマスクをかける

    前提・実現したいこと 単純に長方形の画像に対してsvgファイルで作成した画像(角丸四角形)で切り抜いたようなマスクをかける作業を、全てのブラウザで適用されるようにしたいです。(※

  • 解決済

    VBAマクロエラー「オブジェクトが必要です」

    前提・実現したいこと 在庫数確認のため、WEBページにアクセス ↓ ログイン ↓ 在庫確認ページへアクセス ↓ 商品コードをセルから取り出し貼り付け 問い合わせボタ

同じタグがついた質問を見る

  • PHP

    20282questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Smarty

    173questions

    Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。