• 締切済み

HTMLファイルに外部HTMLファイルを読み込ませる方法

ishibo_062の回答

回答No.6

--- 引用 ------------------------------------------------------ /home/Smarty/libs/ ←【libs】フォルダのみを設置しました /home/public_html/ ←HP公開データのindex.phpを設置しました /home/public_html/Smarty_tpl/ ←フォルダ名をSarty_tplとしました  そして /home/public_html/Smarty_tpl/内に以下のフォルダを作り ・cache ←空 ・configs ←空 ・templates ←取り込み用のsample.tplを設置しました ・templates_c ←空 -------------------------------------------------------------- 上記の設定で行くと、/home/public_html/index.phpでの内容は、 <?php define("SMARTY_DIR","/home/Smarty/libs/"); require_once(SMARTY_DIR."Smarty.class.php"); $smarty = new Smarty(); $smarty->template_dir = './Smarty_tpl/templates/'; $smarty->compile_dir = './Smarty_tpl/templates_c/'; $smarty->config_dir = './Smarty_tpl/configs/'; $smarty->cache_dir = './Smarty_tpl/cache/'; $smarty->display('sample.tpl'); ?> となります。 現在の設定では、Smartyの呼び出しに関してrequire_once('Smarty.class.php');となっておりますが、正確にはrequire_once('../Smarty/libs/Smarty.class.php');となりますので現状で表示するときに何かのエラーは表示されませんでしょうか? ちなみに、require_once('../Smarty/libs/Smarty.class.php');の設定でも間違いではありませんが 表示する.phpファイルごとに設定Smartyまでの階層を指定しなければならず面倒なので今回は以下の様に、 define("SMARTY_DIR","/home/Smarty/libs/"); と予めSmarty本体へのパスを設定し、 require_once(SMARTY_DIR."Smarty.class.php"); と各ファイルからのSmartyへのパスとして設定します。 この2行を全ての表示する.phpファイルに書き込むことによって「../」とか記入しなくても済むので楽だと思います。 $smarty = new Smarty();以下、 $smarty->template_dir = './Smarty_tpl/templates/'; $smarty->compile_dir = './Smarty_tpl/templates_c/'; $smarty->config_dir = './Smarty_tpl/configs/'; $smarty->cache_dir = './Smarty_tpl/cache/'; は、設置するindex.phpからのパスになります。 $smarty->display('sample.tpl'); は、表示したい.tplファイルになりますが、 $smarty->template_dir = './Smarty_tpl/templates/'; でテンプレ-トまでのパスを設定しているのでファイル名だけ記入すれば大丈夫です。 これで、もう一度試していただけませんか?

RRHH
質問者

補足

試してみましたが、やはり結果は同じで駄目でした。 index.phpに <?php require_once('../Smarty/libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = './Smarty_tpl/templates/'; $smarty->compile_dir = './Smarty_tpl/templates_c/'; $smarty->config_dir = './Smarty_tpl/configs/'; $smarty->cache_dir = './Smarty_tpl/cache/'; $smarty->display('sample.tpl'); ?> にしても <?php define("SMARTY_DIR","/home/Smarty/libs/"); require_once(SMARTY_DIR."Smarty.class.php"); $smarty = new Smarty(); $smarty->template_dir = './Smarty_tpl/templates/'; $smarty->compile_dir = './Smarty_tpl/templates_c/'; $smarty->config_dir = './Smarty_tpl/configs/'; $smarty->cache_dir = './Smarty_tpl/cache/'; $smarty->display('sample.tpl'); ?> にしても結果は同じです。 ちなみにindex.phpにある内容だけが表示され、sample.tplを表示させたい場所には何も変化なしといった具合です。 sample.tplについては、ちゃんと表示されているのでファイルが壊れているわけでもアップに失敗したわけでも無いようです。 また、 >現在の設定では、Smartyの呼び出しに関してrequire_once('Smarty.class.php');となっておりますが、 >正確にはrequire_once('../Smarty/libs/Smarty.class.php');となりますので現状で表示するときに何かのエラーは表示されませんでしょうか? こちらですが、前回の間違えている設定でもエラーメッセージは出ていません。 もしかしてサーバー内のアクセス権とかそういったもののせいなのでしょうか? いままで/home/public_html/にアップするという事が無かったので分からないのですが、このディレクトリは普通ではいじれないものなのでしょうか? 何度も質問しちゃって申し訳ありません。宜しくお願い致します。

関連するQ&A

  • よく使うHTMLの外部ファイル化は可能ですか?

    javascript や CSSは <script src=script.js></script> <link rel=stylesheet href=style.css> のように、外部ファイルから読み込むことができます。 htmlでも同様のことはできないでしょうか? htmlでメニューを作っているのですが、 <nav> <ul> <li></li> </ul> </nav> と、すべてのhtmlファイルに書くのも面倒ですし、 メニューの追加や削除があったときに 一つ一つ修正していかなければならないので、 できれば外部ファイルになればと思いました。 jQueryのhtmlメソッドで書き出すというのは、 思いついたのですが、ほかによい方法があればと思い、質問いたしました。 どうぞ、よろしくお願いします。

    • ベストアンサー
    • HTML
  • 外部JavaScriptファイルから呼び出したい!

    ページを早く表示させるために、コピー&ペーストでスクリプトを外部ファイル化しました。 <script language="JavaScript" src="../js/menu.js"></script> ↑とコピペした外部ファイルへリンクさせ、その後、 <script language="JavaScript">mmLoadMenus();</script> と記述してある部分があるのですが、うまく呼びだせてないようでランタイムエラーがでます。 すべてのJavaScriptを1ファイル内に記述しているときはうまく動作しているのですが、外部ファイルに切り離すとエラーが出ます。 外部ファイル化したために、mmLoadMenus();が動作しないので、どなたか分かる方、アドバイスをお願いします!!

  • Java Scriptで外部ファイルをincする

    Java ScriptでUAにあわせ、<head>内を追記し、 クロスデバイス対応にしたいのですが、 外部ファイルの読み込み方が分かりません。 勿論、jQueryやajax、PHPなどを使えば一瞬で解決するのですが、 Script未対応以外の全てのデバイス・サーバーで動くようにしたいので、 それらを使わず、完全にjsのみで作動する方法をご教授いただけないでしょうか? また、自由性を高めるため、htmlの書き換えではなく、 外部ファイル読み込みでお願いします。 ※jQuery AJAX ActiveX PHP XML などは使わない。 ※外部ファイル挿入

  • JavaScriptの外部ファイル化とSSIについて

    いつもお世話になっております。 親切で丁寧なご回答に心から感謝いたします。 今回、JavaScriptを外部ファイルにし、 更新等の時間を大幅に削減しようと思っておりますが、 上手くいかないためこちらに質問させていただきました。 当方のホームページではメニュー部とタイトル部をSSIを利用し、 インクルードさせ、表示しておりますが、JavaScriptを外部ファイルにすると、 SSIでインクールドさせている部分だけ表示されなくなってしまいます。 Firefoxのソース表示でソースをみると、インクルードさせている部分は、 ソースにはありましたが、その部分だけHTML文書ではなく ただの文書(黒字)になってしまっております。 ただ、indexページだけはなぜか正常に表示され、 メニューから移動した際に、インクルードしたものが表示されない状態です。 メニュー部は外部ファイル化したJavaScriptでツリーメニューになっています。 何卒、宜しくお願いいたします。 ソースは下記のとおりです。 <HEAD> <META> <LINK href="detarame2006.css" type="text/css" rel="stylesheet"> <script type="text/javascript" src="script.js"> </HEAD> 省略 <TR> <!--#include file="top/top.html" --> </TR> <TR> 省略 </TR> <!--#include file="menu/menu.html" -->

  • javaスクリプトでHTML書き出しテンプレートを作りたい。

    こんばんわ。 最近javaスクリプト学習中です。 OKwebのような左にメニューのあるサイトを作成予定なのですが、普通に左メニューを作ると100ページ作ったとしたらメニューの変更時、100回書き加える必要がありますよね? そこでジャバスクリプトをHTMLに埋め込もうと考えました。 こんな具合です。 HTML内メニューを表示させたい箇所に <SCRIPT LANGUAGE="JavaScript1.2" src="aaa.js"></SCRIPT> を埋め込み、外部ファイルaaa.jsでは document.write('メニュー表示用html'); とメモ帳で記入しテストしているところです。 ただ、どうしてもうまくいきません、、document.writeだけでよいと思っていたのですが、、 どうしてもうまく表示させたいと思っています。 大変恐縮ですが、どなたか知恵を貸していただけたら幸いです。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • 外部ファイルを読み込む方法について

    外部ファイルを読み込む方法について様々なサイトを参考にしている中、 jQuery.jsを使った方法についてご質問させていただきます。 ファイルは以下のように <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> <!-- $(function(){ $("#header").load("header.html"); }); // --> </script> (HTMLファイル) <div id="header></div> (外部ファイル header.html) <p>外部ファイルのテスト</p> 上記のとおり設定しブラウザで確認(IE及びFirefox)すると IEでは画面上外部ファイルが読み込まれた状態で表示はされているが、 ソースは<div id="header></div>と表示。 一方FirefoxのFirebugで確認すると<div id="header><p>外部ファイルのテスト</p></div> と表示しています。 ここでお聞きしたいのが、巡回ロボットはIEでソース表示されるような認識になるのか・・・ あるいは、外部ファイルが読み込まれた状態のソースで認識してくれるのか・・・ 疑問に感じましたのでご質問させていただきました。 なお、参考にさせていただいたサイト内の注意点として上記の方法だと「空div」でひっかかります。と記載がありました。 なにとぞ、よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 外部ファイルの読み込み

    HTMLにPHPの外部ファイルを読み込みたいと考えています。 <?php include ("1.php"); ?> <html> <head> <title></title> </head> <body> <div> <?php include ("2.php"); ?> </div> </body> </html> <?php include ("3.php"); ?> こんな感じで組み込むことって可能ですか? 外部ファイルなしで普通に1つにして読みこませると大丈夫なのですが、上記のように外部ファイルとして読み込ませると、表示されません。 <html>タグの外って、基本的にだめなんですか? 教えてください。

    • ベストアンサー
    • PHP
  • Javascript外部ファイルの読み込みについて(ブラウザにキャッシュさせたい)

    現在、製作中のサイトにおいて、webページが表示されるまで、5秒~15秒程度かかる事態が発生しています。 該当サイトでは、prototype.js等のjavascriptのライブラリを使用しており、合計で5個のjsファイルを読み込んでいます。 jsファイルの読み込み箇所を削除するとサクサクと快適になるので、jsファイルの読み込みに問題があると考え、jsファイルを圧縮したり(http://dean.edwards.name/packer/等)、ブラウザにキャッシュさせるために<script src=""での読み込み時に引数「?version=1」を追加してみたりしていますが、あまり改善しません。 読み込みの数を減らすため、prototype.jsとjquery.jsを統合するなども試してみました。(統合後のサイズは116KB) 利用環境によってはそれほど気にならない速度なのですが、IE6の環境でかなり重い場合がありますので、改善方法を探しています。 一回目の表示はともかく、2回目以降も毎回トップページ表示に5秒以上かかるのは問題がありますので…。 現時点で原因は、外部jsファイルがキャッシュされず毎回サーバーに読みにいっているために遅くなっていると思うのですが…。 ブラウザに外部ファイルをキャッシュさせる方法は何かないのでしょうか? ちなみに、重くなる環境で、他のサイト(外部JSファイル読み込み多数)のサイトを表示しても、2回目以降は重くなりません。ブラウザのキャッシュの削除も一度試しています。 参考に、現在のスクリプト呼び出し部分を記述します。 ---------------------ソースここから--------------------------- <script type='text/javascript' src='js/prototype-1602-and_jquery.js?version=1'></script> <script type='text/javascript' src='js/js.js?version=1'></script> <script type="text/javascript" src="js/lib/jquery_auto_j.js?version=1"></script> <script type='text/javascript' src='js/scriptaculous-js-181/src/scriptaculous.js?load=effects'></script> <script type='text/javascript' src='js/lightview.js?version=1'></script> ---------------------ソースここまで--------------------------- また、スクリプトはPHPで作っていますので、キャッシュを許可する記述を以下のようにしています。 ---------------------ソースここから--------------------------- session_cache_limiter('private_no_expire'); session_start(); ---------------------ソースここまで--------------------------- また、現状ではjsファイルの読み込みが原因かと考えていますが、それ以外でも改善点などがあれば、それをご指摘頂ければありがたいです。 宜しくお願い致します。 確認環境:windows XP、 IE6 HP作成スクリプト:PHP

  • 外部ファイルの取り込み

    includeで外部のPHPファイルを読み込み、実行しているのですが取り込んだファイルの内容が表示されてしまいます。 外部ファイルを取り込んでも出力せずに実行のみで切るような関数や方法はないでしょうか? よろしくお願いします

    • ベストアンサー
    • PHP
  • 外部ファイルを読み込みたいのですが。

    ASP.NETにおいて、 PHPの「include()」もしくは「require()」ような、 外部ファイルを読み込み表示させる命令はあるのでしょうか? よろしくお願いします。