2017-12-28 9 views
0

メインプロジェクトフォルダ(/ root)とメインプロジェクトフォルダの下にあるサブフォルダ(/ root/sub)にPHPファイルがあります。どのようにJavaScript/CSSファイル用に多目的な相対パスをPHPでエコーしますか?

これらのPHPファイルは、どちらも同じCSSファイルとJSファイルが参照されている同じセクションの<head>を持っています。これらはそれぞれ/ root/cssと/ root/jsの下にあります。コードの重複を避けるために、私はこの一貫性のある<head>セクションをとり、/ root/moduleの下にあるmod_head.phpというPHPモジュールに入れました。私はこのモジュールを/ rootと/ root/subにあるPHPファイルにincludeを使って統合しました。

しかし、/ rootと/ root/cssのPHPファイルではCSSファイルとJSファイルの相対パスが異なり、includeステートメントはメインPHPファイルに相対的なパスしか持たないため、 CSSとJSファイルを適切に参照してください。

私は、このセットアップはどうすればよい

:/ルートの下にPHPファイルの場合

  1. を、リンクスクリプトタグ<head>セクションで、 "JS/main.js" と「CSSを持っています/main.css ../JS/main.js「と」「<head>セクション内の各ファイルについて、およびPHPファイルの場合
  2. 下/ルート/サブ、リンクスクリプトタグを持っています」。 ./CSS/main.css "それぞれのファイル

は私がDIRと$ _SERVER [「DOCUMENT_ROOT」]が、サーバーに関連するこれらの出力絶対パスを使用してみましたが、クライアント側で実行されるこれらのパスを検索するため、動作しません。 。

+0

どのようにサイトをホストしていますか?私は/ rootがyoursite.com/と仮定しますか?もしそうなら、ローカル仮想ホストを設定して、yoursite.irがyourprojectdir/root /を指し示すようにすることができます。そうすれば、資産は正しいURLを持つことができます。src = "/ js/foo.js" ' – JimL

+0

私はMacで/ Library/WebServer/Documentsの下で作業していますが、Linuxサーバー上のライブサイトもホストしています。ブルーホスト。 –

+0

それから、他のドメインと同じようにサイトにアクセスできるように、ローカル開発環境に仮想ホストをセットアップすることをお勧めします。そうすれば、ドメインルートのURL( '/ js/somefile.js'のような)は正しいファイルに移動し、ひどく設定された開発環境をサポートするだけのコードを書く必要はありません(あなたの本番サイトは絶対にのために) – JimL

答えて

0

私はハッキーな方法でそれを解決しました。サブフォルダの名前を知っているので、サブクラス名がgetcwd()の結果に含まれているかどうかを確認し、そうであれば "../CSS/main.css"を返し、そうでなければ "CSS /main.css "と入力します。

関連する問題