PHP:如果正確加載js、css、images等靜態文件


  日常中,我們想要把一些靜態頁面放在框架上或者是進行轉移時,那么靜態頁面上的原url加載js、css、images都會失效,那么我們應該怎么進行修改捏?

  現在倉鼠做個筆記哈

 

   

  這里有幾個注意項:

  1、路徑必須要絕對正確,基於項目之后的js、css文件位置路徑必須是絕對路徑

    (例如項目的位置在D://studys/aa/bb下,項目名稱是cc,js文件路徑是D://studys/aa/bb/cc/public/js/dd.js,那么加載路徑應該是aa/public/js/dd.js)

  2、不要用絕對路徑!!不要用絕對路徑!!不要用絕對路徑!!

   (因為用絕對路徑,將文件放在其他電腦上后,js、css這些文件一樣加載不出來,因為我們存放php文件的系統盤非常有可能不一樣)

  3、當我們使用相對路徑的時候,要善於使用$_SERVER這個全局變量去獲取,一般加載這些文件使用的是dirname($_SERVER['SCRIPT_NAME'])

    ($_SERVER['SCRIPT_NAME']獲取的是inde.php入口文件的相對位置,這里dirname()是指相對於inde.php上一個路徑)

    (例如$_SERVER['SCRIPT_NAME']得到的結果是:aa/bb/cc/index.php,那么dirname($_SERVER['SCRIPT_NAME']得到的結果是:aa/bb/cc,這個結果一般截取到的是框架名稱位置——Index.php最終位置在框架文件夾下)

    (這時候,我們再根據得到的結果,和我們放置js、css文件位置,進行一個拼接,就能得到我們訪問js、css文件的相對路徑)

  

   例子:

  原靜態頁面中,加載js、css、images的路徑為:

  

 

 

  當我們放進框架后,加載這個靜態文件,發現樣式和圖片都失效了,全頁面變得亂七八糟

  

 

 

  這時候,我們只要將正確的加載js、css的路徑進行修改,就能讀取到啦

  1、查看我們JS、CSS、Images置放位置

  

 

  

 

  從上面我們可以看到:JS、CSS等文件,是在v1.0.2/thinkmimi/public/下

 

  2、再定義常量,獲取項目的相對路徑

# 相對於瀏覽器的項目根目錄地址-用於加載靜態文件                 
defined('ROOT_PATH') or define('ROOT_PATH', stripslashes(dirname($_SERVER['SCRIPT_NAME'])));

 

  根據上面的文件,我們可以得出,ROOT_PATH得到的相對路徑為:/studys/TWO/v1.0.2,從這個路徑中,我們得出,v1.0.2是整個框架的名稱

 

  3、最后進行url拼接

  

 

 

  這時候,我們進行訪問,就能正確加載到我們的靜態文件啦

  

 

 

  我們打開審查元素,查看JS、CSS等文件生成的URL

  

 

  可以看到,加載的最終結果都是相對路徑,即使文件放在其他電腦上,系統也會根據$_SERVER去獲取此框架在該電腦中的相對路徑的

  以上

  END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM