日常中,我们想要把一些静态页面放在框架上或者是进行转移时,那么静态页面上的原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

最新文章

  1. Activity详解生命周期(Android)
  2. hosts 文件妙用
  3. 关于最近的CSRF攻击
  4. 为什么需要Bundler
  5. hdu 2232 矩阵 ***
  6. ccc2016
  7. kubernetes源码解析---- apiserver路由构建解析(1)
  8. navigationbar的一些设置记录
  9. 在Windows下编译FFmpeg详细说明
  10. 一、python基础笔记(输入输出、list、touple、dict、set)
  11. 浅谈Linux的内存管理机制
  12. HTML 菜单 a 标签设置样式
  13. Devexpress 汉化 代码 zt
  14. HDU 2601 An easy problem
  15. 机器学习(4)Hoeffding Inequality--界定概率边界
  16. Kaggle竞赛 —— 泰坦尼克号(Titanic)
  17. linux的常用命令介绍
  18. Sptringboot 添加子项目
  19. Cordova入门系列(二)分析第一个helloworld项目
  20. Quickstart: Embed a Power BI Report Server report using an iFrame in SharePoint Server

热门文章

  1. Linux安装与分区解释
  2. 字符串 Instant 互转
  3. Install ElasticSearch plugin for head
  4. 《高性能mysql》笔记
  5. c++中enum 如何使用(转)
  6. python数据库的增删改查
  7. java课后思考问题(一)
  8. java——线段树 SegmentTree
  9. 虚拟机 ---- 最小化安装无法使用tab补全键
  10. 在本地安装oracle-maven库