Windows環境でSmartyを動かしています。
動かしているサンプルソースがWindows用ではないため、パスなどを動くように直していたのですが、パスの設定でつまってしまいました。
サンプルのphpファイルはC:\xampp\htdocs\sample\に置いており、
Apacheのinclude_pathにC:\xampp\php\smarty\libs\を設定しました。
「templates_c」「templates」「configs」「cache」のフォルダを同じ場所に作成し、
それぞれディレクトリを指定しようとしたのですが、サンプルの「/home/~」というのをどのように直せばいいのか色々と試していて、
$smarty->template_dir = '../templates/';
$smarty->compile_dir = 'C:/xampp/php/smarty/templates_c/';
$smarty->config_dir = 'C:/xampp/php/smarty/configs/';
$smarty->cache_dir = 'C:/xampp/php/smarty/cache/';
で正常に動くのですが、
$smarty->template_dir = '../templates/';
$smarty->compile_dir = '../templates_c/';
とすると、templates_cが存在しないというエラーが出てきます。
compile_dirを"../"にするとhtdocsの直下にファイルができていたので、compile_dirはphpファイルからの相対パスで、template_dirはlibsからの相対パスになっているように思いますが、相対パスで指定する場合の基準パスが違うのでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは
はじめに、これは「アドバイス」です。
自分もWindowsでSmartyを試して使っていたことがあるので、そのソースファイルを見てみました。
template_dirもcompile_dirもphpファイルがあるディレクトリからの相対パスですので、phpファイルと同じ場所にtemplateディレクトリとtempletes_cがあるならば、同じパスの記述でいいはずです。
$smarty->template_dir = 'templates';
$smarty->compile_dir = 'templates_c';
include_pathはSmartyクラスが置いてあるパスを指定するものだと思います。
ディレクトリ名を間違えていると言うことはしてないと思いますので、エラーメッセージをそのまま載せてみてはいかがでしょうか。
この回答への補足
回答ありがとうございます。
エラーメッセージは以下が全文です。
Fatal error: Smarty error: the $compile_dir '../templates_c/' does not exist, or is not a directory. in C:\xampp\php\smarty\libs\Smarty.class.php on line 1092
やはり、template_dirもcompile_dirも同じパスの記述でいいんですね。
phpファイルからの相対パスのはずなのに、以下の構成のときに '../templates/';で動くのが不思議です・・・。
template_dirなどのフォルダはhtdocsの配下ではなくSmartyクラスを置いてあるのと同じ場所にあります。sample.phpの中で呼び出している.tplファイルはtemplatesにしかありません。
phpファイル(http://~/sample/sample.php)
C:\xampp\htdocs\sample\sample.php
PHP&Smartyクラス
C:\xampp\php\
C:\xampp\php\smarty\libs\
C:\xampp\php\smarty\templates\
C:\xampp\php\smarty\templates_c\など
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- その他(プログラミング・Web制作) カラーミーのSmarty構文について 1 2022/10/09 13:55
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
ファイル・ディレクトリ削除を...
-
CFileDialogの最初のディレクト...
-
fopenでファイルが開かない場合...
-
glob関数で日本語文字が取得で...
-
powershell で書いたプログラム...
-
CakePHP のディレクトリの構成...
-
現在位置より2つ上のディレク...
-
includeが出来ない訳とは?
-
ファイルアップロードに関して...
-
aspのページが表示できません
-
C# 特殊ディレクトリを変更した...
-
UWSCでファイルのアップロード...
-
http://localhost/に.htaccess...
-
/usr/local/lib/phpとはどうい...
-
PHP ftp_fput()関数について
-
makefile でファイルをコピーす...
-
Visual C++ 2005 Express Editi...
-
拡張子を隠すのは良い事なので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
CFileDialogの最初のディレクト...
-
visualstudioでc#のdllができない
-
ファイルアップロードに関して...
-
現在位置より2つ上のディレク...
-
makefile でファイルをコピーす...
-
fopenでファイルが開かない場合...
-
rmdirでフォルダが消せません
-
絶対パス?絶対アドレス?意味...
-
コマンドプロンプトを指定のデ...
-
VB.NET 最下位のディレクトリ名...
-
VB2008でFTPでのディ...
-
DLL のロードの順序
-
MkDir関数
-
ファイル選択ダイアログで選択...
-
図に示す階層構造で,現在のデ...
-
[ ディレクトリ '.' は書き込み...
-
JAVA内で複数のファイルを削除...
おすすめ情報