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

PHP:如果正确加载js、css、images等静态文件的更多相关文章

  1. 动态加载js css 插件

    简介 动态加载js,css在现在以及将来肯定是很重要的.目前来看前端代码编写的业务量已经远远超过后端编写的.随着对用户体验度逐渐增强,前端业务复杂,加载速度变得很慢很慢.为了解决这个问题,目前出现的两 ...

  2. js动态加载js css文件,可以配置文件后辍,防止浏览器缓存

    js的引用,在浏览器,或微信上访问经常会遇到文件改了,但就是没有更新的问题,使用此函数可以轻松解决缓存问题只需要把js的引用方式改为使用此函数加载即可 源码如下: /** * js动态加载js css ...

  3. 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存

    js清除浏览器缓存的几种方法 - 兔老霸夏 - 博客园 https://www.cnblogs.com/Mr-Rocker/p/6031096.html js清除浏览器缓存的几种方法   一.CSS和 ...

  4. javascript异步延时加载及判断是否已加载js/css文件

    <html> <head> <script type="text/javascript"> /**======================= ...

  5. [Yii2] 快速套模板,加载JS,CSS(HTML标签<base>)

    刚开始学,弄了好久,不知道怎么加载JS.CSS,以及怎么不加载YII2自带的模板!其实真的好简单! 补: 其实是我垃圾,YII2默认访问路径是WEB,所以把style文件放到web下就能加载! 首先把 ...

  6. 动态加载js,css

    今天项目中需要用到动态加载 CSS 文件,经过一番折腾终于搞定,回家整理了一下,顺便融合了动态加载 JS 的功能写成了一个对象,先上代码: var dynamicLoading = { css: fu ...

  7. JS动态加载 js css

    1.动态加载js function loadScript( url ){ var script = document.createElement( "script" ); scri ...

  8. Laravel 加载 js css image 文件

    写在前面的话: 1.前提是需要使用blade模板引擎 2.css js image 文件夹建在laravel 的 public 目录下面 3.生成的路径默认都是相对路径 A: 加载css文件 (用下面 ...

  9. 动态加载js,css(项目中需要的)

    最近做的一个项目需要加入百度统计,大家都知道百度统计在页面引用就是一坨js,实现方法很简单引用到页面就ok了. 那么问题来了,虽然我不知道百度统计的原理是啥,我的测试服引用了百度统计,百度统计账号里面 ...

随机推荐

  1. 根据map中某一字段排序

    以上是从小到大的排序...要注意.! 需要jdk8...

  2. c#工具类之Int扩展类

    public static class IntHelper { /// <summary> /// 转换为2进制字符串 /// </summary> /// <param ...

  3. tomcat 虚拟目录配置appBase和docBase的区别

    先看server.xml文件host配置   <Host name="localhost" appBase="webapps"      可以修改成自己想 ...

  4. [2019BUAA软工]团队项目选择

    Team V1 项目分析 写在前面 项目 内容 这个作业属于哪个课程 BUAA2019软件工程 这个作业的要求在哪里 团队项目选择 参考链接 如何提出靠谱的项目建议 NABCD 我们在这个课程的目标是 ...

  5. Problem03 水仙花数

    题目:打印出所有的"水仙花数"."水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个"水仙花数",因为153=1的 ...

  6. windows 7 下安装VMWARE 和 red-hat 7 64bit

    按F2 进入BIOS: 在inter virtualization technology 选择YES 就可以安装linux 64bit 操作系统了 https://blog.csdn.net/coco ...

  7. array.map

    定义和用法 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值. map() 方法按照原始数组元素顺序依次处理元素. 注意: map() 不会对空数组进行检测. 注意: ma ...

  8. 3d Max 2010安装失败怎样卸载3dsmax?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  9. 明码(C++)

    2.明码(结果填空) (满分7分) 注意事项:问题的描述在考生文件夹下对应题号的“题目.txt”中.相关的参考文件在同一目录中.请先阅读题目,不限解决问题的方式,只要求提交结果.必须通过浏览器提交答案 ...

  10. LeetCode 110.平衡二叉树(C++)

    给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,null,nu ...