2013-06-26 40 views
0

爲了給你更多的上下文,我的文件結構看起來像:includes/overall/footer.php,並且在這個文件中,我引用了js/nav-header.js注意,包含和js文件夾都位於基本文件夾中。我是否正確地做這件事?如何在使用PHP和js時指定路徑?

包括/綜合/ footer.php:

<?php include 'includes/footer.php'; ?> 

    <script type="text/javascript" src="libs/jquery-1.10.1.min.js"></script> 
    <script type="text/javascript" src="libs/bootstrap/js/bootstrap.min.js"></script> 
    <script type="text/javascript" scr="js/nav-header.js"></script> 
    </body> 
</html> 

這個文件本身包含在另一個文件中,它必須是與其中的東西正在也許加載順序?原因是,我似乎無法獲取JavaScript文件中的任何內容來觸發。任何幫助,將不勝感激。

+0

在控制檯或JS的螢火蟲有什麼錯誤? – Naeem

+2

_client_使用已加載主文檔的URL作爲基礎,將相對URL解析爲絕對URL。因此,包含文件分散到多少級別,服務器端根本就不重要。 – CBroe

回答

0

nav-header.js包含哪些內容?

資產按服務器出現在html中的順序請求。所以nav-header.js會在jquery之後被調用,但這並不意味着它會在它之前完成加載。

而且加載文件使用絕對路徑: /js/nav-header.js,而不是JS/NAV-header.js 你知道JS/NAV-header.js將被載入這樣從根文件夾。

如果你有js/nav-header.js中的代碼在加載時觸發(不是文檔就緒),我會將其移動到文檔準備就緒狀態。

0

我建議不要使用硬編碼絕對路徑,因爲這會使應用程序的可移植性降低。

相反,設置一個$base_url變量,你可以在你的HTML

<?php $base_url = "/"; ?> 

迴響在你的HTML

<script type="text/javascript" scr="<?php echo $base_url; ?>js/nav-header.js"></script> 

您可以使用此整個網站的JS,CSS,錨等

+0

這似乎並沒有做到。它可以加載jQuery就好了,沒有基礎url,但JavaScript不會加載。我試圖把它放在.js文件中: $(function(){ console.log(「JS loaded」); }); 但它不起作用。我把相同的代碼放在頁腳中。PHP文件,我正在導入腳本,它的工作原理。 –

0

在所有相對路徑中使用HTML中的BASE標籤:D

Phil Sturgeon寫了一個關於它在CodeIgniter中的使用的blog post,但基本上你不需要使用框架來使用相同的原則。

您應該將文檔根存儲在應用程序中某個變量的某個變量上,並具有一個引用該變量的函數,然後將其反饋到基本標記中。通過這種方式,當您將您的應用程序移動到不同的環境時,您只需要在一個地方更改根目錄,並且您可以輕鬆前往。

另外,read this在使用基本標籤之前。

+0

只是爲了重申,我的jQuery和引導文件加載正常,但我檢查鉻devtools和js甚至沒有在源選項卡。 –

+0

我的建議是,休息15分鐘,回到它。可能是你是一種簡單的道路或錯字。只要讓你的眼睛休息一下。 – Ethan

相關問題