ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp テンプレートのパスの問題

thinkphp テンプレートのパスの問題

WBOY
WBOYオリジナル
2016-06-23 13:56:361648ブラウズ

thinkphp を初めて使用するのですが、テンプレートにリソース ファイルのパスを設定する方法がまだわかりません。
たとえば、

私のプロジェクトでは、「Admin」と「 Content' では、テンプレートの表示効果をテストするために、PageTestAction を作成しました。テンプレートを表示する show メソッドは 1 つだけであり、便宜上、デフォルト グループ、デフォルト モデル、およびデフォルト メソッドが設定されているため、アクセス アドレスは次のようになります。 http://localhost/XBlog (プロジェクト名)/index.php すべて問題ありません。

そして、通常のパス http://localhost/XBlog/index.php/Content/PageTest/show を使用してリソース ファイルにアクセスすると、無効になります

私の理解によれば、「__PUBLIC__」=「/Public」したがって、' .__PUBLIC__'='./Public' となり、'./' は現在のディレクトリを表すため、'./Public' の相対アドレスは、index.php からの相対アドレスになります。ただし、'/Content/PageTest/show' の場合は、がその後に追加されています。いいえ、「/Content/PageTest/show」もパスとして存在しますか? 現在のパスが変更されましたか?グループ、モジュール、メソッドの仮想パスを表すために使用されるのではありませんか?

また、Web サイトのルートディレクトリの相対アドレスを次のように記述すると、、なぜ途中にプロジェクト名のディレクトリが挟まれているのかわかりません。 「__ROOT__: 現在の Web サイトのアドレスに置き換えられます (ドメイン名を除く) __APP__: 現在のプロジェクトの URL アドレスに置き換えられます (ドメイン名を除く)」 Web サイトに複数のプロジェクトを含めることはできますか?
__ROOT__ と __APP__ の関係は何ですか?
ローカルのWWWフォルダに複数のプロジェクトがありますが、正式にサーバーにデプロイした場合はそうではないのでしょうか? /XBlog(プロジェクト名)/Public/Theme/default/css/bootstrap.min.css" この書き方は展開に影響しますか?


ディスカッションへの返信 (解決策)

thinkphp マニュアルを参照できます。 1. __ROOT__ と __APP__ はシステム定数です
単一モジュール tpl テンプレート内のファイルを参照するには相対パスを使用できます

thinkphp マニュアルを確認できます: 1. __ROOT__ と __APP__ はシステム定数
単一モジュール tpl テンプレート内。ファイルを参照するには相対パスを使用できます


私の質問に答えていただけませんか? '__ROOT__: は現在の Web サイトのアドレス (ドメイン名を除く) __APP__ に置き換えられます。現在のプロジェクトの URL アドレス (ドメイン名を除く) に置き換えられます。これは、thinkphp マニュアルから貼り付けられたものですか?

Web サイトのルートです。 /
www/index.php エントリ ファイル http://localhost/index.php
www/app/ プロジェクト ディレクトリ http://localhost/app/
www/app/... プロジェクト内のすべてのファイルとディレクトリ

www/ Web サイトのルート http://localhost/
www/index.php エントリ ファイル http://localhost/index.php
www/app/ プロジェクト ディレクトリ http://localhost/app/
www/app/..プロジェクト内のすべてのファイルとディレクトリ


しかし、私のプロジェクト構造は次のようではありませんか?

これは、thinkPHP によって自動的に生成されたディレクトリ構造です

www/ Web サイトのルートhttp://localhost/
www/index.php エントリ ファイル http://localhost/index.php
www/app/ プロジェクト ディレクトリ http://localhost/app/
www/app/... 内のすべてのファイルproject, Directory


"まず、サーバーまたはローカル Web ディレクトリの下に App ディレクトリを作成し、ダウンロードした ThinkPHP フレームワークの ThinkPHP ディレクトリを App ディレクトリにコピーして、App ディレクトリの下にindex.php ファイルを作成します。このファイルプロジェクトのエントリーファイルを作成するためのものです。 「これは thinkPHP マニュアルからの元の引用です

最初の質問:
/Content/PageTest/show はパスを変更するため、テンプレート内のリソース アドレスは、現在のアドレスではなく、ルート ディレクトリを基準とした相対パスを使用する必要があります。
2 番目の質問 質問:
/XBlog は、www ディレクトリに作成したプロジェクト フォルダーである必要があります。Web サイトのルート ディレクトリは、プロジェクト フォルダーではなく、www フォルダーを参照します。
3 番目の質問:
/XBlog (プロジェクト名)/Public/テーマ /default/css/bootstrap.min.css の記述方法は、デプロイメントに確実に影響します。デプロイメント中、プロジェクト フォルダーの内容は通常、www フォルダーの直下に配置されるためです。この場合、/XBlog になります。 (プロジェクト名) は削除する必要があります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。