2011-08-01 108 views
0

我有這個設置。PHP全局路徑設置

root dir| 
     index.php 
     config.php 
     file.php | 
       | 
       |scripts|a.js 
       | 
       |account 
         |index.php 
         |   | 
         |member |index.php 
  • 現在,我已經包括的index.php成員DIR考慮迪爾的index.php。此外,該帳戶的index.php包括其中包含的config.php,

    define('PATH', (__DIR__)); 
    

現在,所有賬戶包括的index.php我用,

require_once(PATH . '\file.php'); 

和工作正常。但是,當我嘗試添加路徑SCRIPT SRC等,

<script type="text/javascript" src="<?php '.PATH.'scripts/livevalidation.js ?>"></script> 

我得到一個錯誤,所以我怎麼能包括在腳本中a.js文件夾到使用全局定義路徑賬戶的index.php文件。

謝謝。

回答

2

PHP「__DIR__」和「__FILE__」對於服務器是絕對的。你不需要爲你的腳本使用。

<script src="/scripts/livevalidation.js"></script> 

而且,你的PHP看起來有一些語法錯誤,這將是正確的(雖然仍然是行不通的:

<script src="<?php echo PATH.'/scripts/livevalidation.js'; ?>"></script> 
+0

因爲我在本地測試我在腳本src獲得這個所以我怎麼能讓它參考腳本文件正確 – Ajay

+0

@Ajay,我只是使用我使用的第一個代碼示例,只是使用「/ scripts /」,因爲這是相對於webroot(即/ yoursite.com/,/ scripts/is yoursite.com/scripts/ )。相對於域 – RSully

+0

此外,因爲你在Windows服務器上,你的服務器路徑將有「\」,但網絡路徑需要「/」 – RSully

0

你缺少printecho語句在PHP您的script標記中的語句,您也將轉換週期放在錯誤的地方,但是,您試圖包含的JavaScript不需要在PHP語句中。那說,最後的升ine應該如下所示:

<script type="text/javascript" src="<?php echo PATH ?>scripts/livevalidation.js"></script> 

然而,最重要的是,我不認爲上述將按預期工作。 __DIR__輸出服務器端文件系統路徑,這在通過HTTP導入JavaScript時沒有意義。我建議你的東西沿着以下的線路更多:

<?php define('URL_ROOT', '/'); ?> 

<script type="text/javascript" src="<?php echo URL_ROOT ?>scripts/livevalidation.js"></script> 

在上面的例子URL_ROOT將指向下,你的靜態媒體(CSS,JavaScript和等)供應的絕對URL。