Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory.
上記エラー表示となる理由が分かりません。誰か教えてください。
▼質問したい内容
・「templates_c」ディレクトリをドキュメントルートから外してはいけないのでしょうか?
・$smarty->compile_dirを指定しなくても、勝手に「templates_c」ディレクトリを探しにいくのでしょうか?
▼経緯
「templates」「templates_c」ディレクトリをドキュメントルートから外したら(public_htmlより上の階層に置くように変更したら)、上記エラーが出るようになりました。
「templates_c」ディレクトリをドキュメントルートへ戻すと、正常表示されます。
(但し、その際、$smarty->compile_dirは、public_htmlより上の階層を指定したままなのに、正常表示される理由が不明)
試しに、$smarty->compile_dir表記自体を外してみましたが、それでも、正常表示されてしまいます。
「templates_c」ディレクトリのパスは、$smarty->compile_dirで指定しているのでは、ないでしょうか?
「templates_c」ディレクトリのパスはどこで指定をすればよいか、
また、ドキュメントルートを外してもよいか、
この2点、誰か教えて~。
※わざわざ「templates_c」ディレクトリを、ドキュメントルートから外さなくてもよいかとは思いますが、「templates」ディレクトリと同じところに置こうとも思ったら、出来なかったので、その理由を知りたいと思ってます。
No.1ベストアンサー
- 回答日時:
>「templates_c」ディレクトリをドキュメントルートから外してはいけないのでしょうか?
パスの指定やパーミッション設定さえ間違っていなければ、ドキュメントルートから外して問題ありません。
当方自身、ドキュメントルート以下フォルダ階層の深い位置に置いた場合でも、まったく問題なく動作しています。
ドキュメントルートより上に置いた事はありませんが、理論上はまったく問題ないはずです。
>$smarty->compile_dirを指定しなくても、勝手に「templates_c」ディレクトリを探しにいくのでしょうか?
$smarty->compile_dirで指定せず省略された際には、デフォルト設定の[templates_c]という名前のフォルダが使用されます。
>$smarty->compile_dirは、public_htmlより上の階層を指定したままなのに、正常表示される理由が不明
おそらくですが、正しくパスが設定されていない事が原因でしょう。
相対パスを使用しているのではないかと思いますが、相対パスの基準位置等を勘違いされていて、正しく設定できていないのではないかという気がします。
相対パスで混乱するようであれば、絶対パスを指定してください。
>「templates」ディレクトリと同じところに置こうとも思ったら、出来なかったので
FTPソフトによっては、サーバー上で[移動]や[コピー]ができない場合があります。
あるいは、キャッシュが更新されていないために、古い状態が表示されているだけなのかも知れません。
『最新の状態に更新』をして、かつ、『ディレクトリの作成』をした場合でも同様でしょうか?
複数の現象が、それぞれ別の原因で発生して、切り分けができずに混乱状態なのだろうと想像できますが、ひとつひとつ解きほぐしてください。
この回答への補足
>パスの指定やパーミッション設定さえ間違っていなければ、ドキュメントルートから外して問題ありません。
そうですよね。
>$smarty->compile_dirで指定せず省略された際には、デフォルト設定の[templates_c]という名前のフォルダが使用されます。
ありがとうございました。自分でもその後、同内容のことを記載しているサイトを見つけました。
>>$smarty->compile_dirは、public_htmlより上の階層を指定したままなのに、正常表示される理由が不明
>おそらくですが、正しくパスが設定されていない事が原因でしょう。
私もそう思います。それしかないですよね。
>相対パスで混乱するようであれば、絶対パスを指定してください。
絶対パスを使用しているのですが、何かを自分で勘違いしているのだと思います。
>>「templates」ディレクトリと同じところに置こうとも思ったら、出来なかったので
これは質問の仕方がまずかったようです。「templates」と「template_c」を同じディレクトリに置いたにも関わらず、「template_c」だけがエラーになるのはなぜ? という意味でした。
■現状整理⇒自分
・「templates_c」ディレクトリをドキュメントルートから外してもよい。
・$smarty->compile_dirを省略した場合、あるいは指定が間違っている場合には、デフォルト設定の [templates_c]という名前のフォルダが使用される。
・恐らく、$smarty->compile_dirのパス指定が間違っている。それしかない…。
■結論
・もう少し、よく考えてみます…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 空のディレクトリで dir を行ったとき 4 2023/05/05 17:54
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CFileDialogの最初のディレクト...
-
バッチを用いたフォルダの自動移動
-
Visual C++ 2005 Express Editi...
-
makefile でファイルをコピーす...
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
コマンドプロンプトを指定のデ...
-
VB2008でFTPでのディ...
-
図に示す階層構造で,現在のデ...
-
Matlab 指定したディレクトリ...
-
変数のなかみを辿る方法(Python)
-
Subversionで、ファイルをリネ...
-
visualstudioでc#のdllができない
-
ファイル・ディレクトリ削除を...
-
fopenでファイルが開かない場合...
-
str ! = NULL
-
JAVA内で複数のファイルを削除...
-
execコマンドについて
-
filemtimeについて
-
MkDir関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
バッチを用いたフォルダの自動移動
-
CFileDialogの最初のディレクト...
-
現在位置より2つ上のディレク...
-
Subversionのリポジトリの削除
-
fopenでファイルが開かない場合...
-
makefile でファイルをコピーす...
-
VB.NET 最下位のディレクトリ名...
-
rmdirでフォルダが消せません
-
visualstudioでc#のdllができない
-
ファイルアップロードに関して...
-
絶対パス?絶対アドレス?意味...
-
MkDir関数
-
拡張子を隠すのは良い事なので...
-
Subversionで、ファイルをリネ...
-
powershell で書いたプログラム...
-
コマンドプロンプトを指定のデ...
-
ファイル選択ダイアログで選択...
-
aspのページが表示できません
-
JAVA内で複数のファイルを削除...
おすすめ情報