ホームページ >バックエンド開発 >PHPチュートリアル >ZF の現在のパスに問題がありますか?助けてください。ありがとう
ZF の電流経路に問題がありますか?助けてください。ありがとうございます
zendframework について少し勉強したところ、問題が発生しました。皆さんが問題の解決に協力できることを願っています。よろしくお願いします
バックエンド、adminControll.php を作成しました
アクセスは http://website/admin です
チュートリアルやチュートリアルを含む多くの場所で読みました初期化中にこの文を書きます。
$this->view->baseUrl = $this->_request->getBaseUrl();
しかし、出力を確認すると、それは 1 つだけでした。 .
そして、多くのリンクの前で $this->baseUrl を使用しますが、ページを開くときに常にエラーが発生します。つまり、正しいリンクアドレスを取得できません。たとえば、URL が http://www.123.com である場合、articleAction を参照する必要があります。次に、ページに http://www.123.com/admin/article
を $this->baseUrl."/admin/article" に変更すると、問題が発生する可能性があります。 、単一ページ http://www.123.com/admin/article/act/edit/id/1 でパラメータを接続するときにエラーが発生した場合。このように書くと、結果としてひどいパスになります。
混乱していてうまく表現できなかったのですが、理解していただけたでしょうか?
このパスの問題により、スタイルや画像にエラーが発生する可能性があります。パスが書かれていない限り。
http://www.123.com/admin/article ページで 表示は正しいです。
しかし、ページ http://www.123.com/admin/article/act/edit/id/1 にエラーがあります。ただし、同じファイルを呼び出し、アドレス パスも同じですが、Web サイトにはさらに多くのフォルダーがあるようです。 つまり、これは間違いです。
私はもう死んでいます。直接
および< ;?php echo $this->weburl;?>それは http://www.123.com
よく考えた結果、この方法はあまりにも死んでいると思います。
他に方法はありますか?
解決策を探しています。ご協力いただきありがとうございます。
-----解決策---------
さて、実はzfにはURLを取得するための関数がたくさんあります。柔軟になる方法はたくさんあります。
phtml の場合:
$this->baseUrl() は
プロジェクトがデモ 1 の場合
は/demo1/public を意味します
つまり:
http:// localhost/demo1/public
CSS が含まれている場合は、
echo $this->baseUrl().'/styles/global.css'
ie:
http:// localhost/demo1/public/styles/global.css
。 BaseUrl の意味は、ドメイン名を削除することから始めることです。今後は、リソースを参照するときに相対パスを使用しないでください。これを使用する場合は、明確に考えてください。
Web サイトの URL を取得して
$this->serverUrl() を使用すると、http://localhost