美文网首页
#002 页面静态化之路径问题解决方案

#002 页面静态化之路径问题解决方案

作者: izhongxia | 来源:发表于2017-02-23 14:34 被阅读45次

时间:2017-02-23 12:10:35
作者:zhongxia

一、背景

由于网站的内容都是动态生成的,地址链接也是很有指向性,比如把页面的id保存在地址里面。

http://www.xxx.com/test/demo/show.php?id=1000

这样最终展示给用户是不好的,并且容易被爬虫抓取数据,也不安全。

然后公司就对页面做了简单的静态化处理(伪静态化)
地址变成了

http://www.xxx.com/page/1000.html

说白了,就是把id当成文件名。

但是这样问题就来了, 因为 本来 show.php 文件用到的资源文件都是写成相对路径的,并且资源文件都在 show.php 所在的目录下。

访问伪静态化后生成的HTML文件,那么就存在 加载资源文件路径不对的问题。

# 未伪静态化前
http://www.xxx.com/test/demo/show.php?id=1000

# 资源加载路径
http://www.xxx.com/test/demo/index.css
http://www.xxx.com/test/demo/index.js

# 伪静态化后
http://www.xxx.com/page/1000.html

# 加载的资源文件路径
http://www.xxx.com/page/index.css
http://www.xxx.com/page/index.js

# Error ,找不到该资源文件。报错

二、如何解决

2.1 资源引用路径从相对路径改成绝对路径

解决方案有两个,把所有的资源文件,从相对路径改成绝对路径(基于根目录的路径也可以)

# 替换掉这种的路径
test/demo/index.css
./test/demo/index.css

# 替换成, 从根目录开始算的路径
/test/demo/index.css

# 或者, 绝对路径
http://www.xxx.com/test/demo/index.css

2.2 HTML的 base标签

如果引入的资源都是在 show.php 页面的目录下。所有资源文件都在一个目录下的话。 那么你就可以考虑树勇 base 标签来实现。

限制条件

  1. 所有资源都在一个目录下
  2. 页面功能复杂,各种文件引用非常多,修改量大

如果以上两点满足了,那么我们继续往下看, 看看base怎么用。

show.php

<html>
    <head>
        <base href="/test/demo/"/>
        <link type="stylesheet" href="index.css"/>
    </head>
    ...
    ...
</html>

这样加载资源的时候,就会去 /test/demo/index.css 路径来获取。

三、 base 标签

base标签放在 head标签 中

将相对路径变成绝对路径

  1. 这个对于需要借(chao)鉴(xi)别人网页的时候特别有用~

批量设置target=_blank

  1. 当需要对一个页面下的所有链接都加上target='_blank'属性时,加上标签即可

相关文章

  • #002 页面静态化之路径问题解决方案

    时间:2017-02-23 12:10:35作者:zhongxia 一、背景 由于网站的内容都是动态生成的,地址链...

  • 20 .在vue项目中遇到的问题和解决方案

    vue-cil和webpack中本地静态图片的路径问题解决方案 height & line-heightheigh...

  • SpringBoot2 整合FreeMarker模板,完成页面静

    本文源码:GitHub·点这里 || GitEE·点这里 一、页面静态化 1、动静态页面 静态页面 即静态网页,...

  • FreeMarker页面静态化

    1、页面静态化 1.1 页面静态化 模板+数据模型=输出,页面静态化需要准备数据模型和模板,先知道数据模型的结构才...

  • 听欢哥讲PHP页面静态化

    页面静态化 1、什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在用户面前。 ...

  • 路径

    views中访问HTML静态页面·相对路径 在views定义的函数中访问指定的静态HTML页面 写的相对路径 de...

  • 海量数据的解决方案

    本文仅概述对海量数据的解决方案,适宜观众:小白,大白请绕道。后续文章 高并发的解决方案 1、缓存和页面静态化 缓存...

  • 大数据并发处理解决方案:

    1、HTML静态化 效率最高、消耗最小的就是纯静态化的html页面,所以尽可能使网站上的页面采用静态页面来实现,这...

  • 静态化方法

    静态化方法 页面静态化的方法,分为两种,一种是伪静态,就是url 重写,一种是你真的静态化。下面介绍PHP中页面静...

  • mysql数据库性能调优

    一、减少数据库访问 对于可以静态化的页面,尽可能静态化 对一个动态页面中可以静态的局部,采用静态化 部分数据可以生...

网友评论

      本文标题:#002 页面静态化之路径问题解决方案

      本文链接:https://www.haomeiwen.com/subject/lbkbwttx.html