• Base标签小记:更改当前页面的地址


    一般来说,H5游戏的部署,index.html和代码资源都会放在同一个地址下然后使用iFrame导入到需要加载游戏的页面即可。

    但是今天游戏项目部署遇到了一个问题,游戏自己的访问页面(index.html)的地址(a.com)和游戏代码资源的地址(b.com)不在一个地方,这就导致在index中加载了游戏代码后,游戏代码中引用的所有相对路径的资源都报404,(比如实际地址是b.com/res/1.png,但是由于加载到index中,使用a.com的路径,所以请求地址变成了a.com/res/1.png,当然会404了。)

    解决方法就是修改当前页面的默认地址,即Base标签。

    地址不变时

    游戏资源地址不会变化时可以这么写:

    <html>
    <head>
    <base href="http://www.b.com/res/" />
    </head>
    <body>
    </body>
    </html>

    此时,当前页面下的所有相对路径都相对于b.com/res/这个路径来寻找。

    地址会变动时

    地址会变动时,可以采用js动态添加base标签或动态修改base标签来改变默认地址,如下:

    1 var basePath = ""; // 各种方式获取要更改的默认路径
    2 
    3 var base = document.createElement("base");
    4 base.setAttribute("href", basePath);
    5 document.getElementsByTagName('head')[0].appendChild(base);

    效果一致。

    注意事项

    默认地址一旦改变,就会影响当前页面上的所有相对路径。

  • 相关阅读:
    建造者模式
    抽象工厂设计模式
    工厂设计模式
    原型设计模式
    单例设计模式
    UML类图的学习
    kafka的客户端操作, stream API
    kafka的客户端操作,consumer API
    kafka的客户端操作,admin与producer
    Optional常用写法
  • 原文地址:https://www.cnblogs.com/hammerc/p/7519717.html
Copyright © 2020-2023  润新知