传统网站开发Node实战 --1. 1补充: 模板文件外链静态资源问题

阅读 50

2022-03-11

看一下下图中静态资源的引用路径:

在这里插入图片描述
那么,这个路径是相对于谁的呢?

看上图,浏览器会把请求路径的最后一部分,即login,认为不是路径,而是路径下面的文件

也就是说,浏览器会认为login是一个文件,/admin才是请求路径

所以模板中的相对路径是相对于/admin的

当然,存在特殊情况,客户端的请求路径/admin和服务器端存储静态资源的文件夹public的路径是相同的。

如果存放模板文件的文件夹和 存放静态资源的文件夹名字一样,是恰好不会出错的,如下面两张图(public是存放静态资源,views存放模板文件)

在这里插入图片描述

如何证明出错呢?

在这里插入图片描述
在地址栏中输入localhost/abc/login会发现样式消失了

如何解决这种问题呢?

  • 只需要将相对路径改成绝对路径即可
  • 在模板中 '/ '可以代表绝对路径

在这里插入图片描述

总结

在这里插入图片描述

首先我们要知道,我们开放了public目录,那么外链静态资源都是在public目录下的。如:

第一张图片的href="css/base.css",浏览器会找到public/admin/css/base.css所以不会出错。

在这里插入图片描述

但是,如果将路由请求路径由/admin 改成了 /abc,则浏览器就会去找 public/abc/css/base.css,这是就会找不到base.css文件了,因为在public下没有abc文件夹!

所以,直接干脆地将views目录下面的模板文件中的外链静态资源全部改成绝对路径就完事了!

精彩评论(0)

0 0 举报