css中的url('/static/images')如何访问当前地址的相对路径?

uni-app中打包到h5时,设置了bath和publicPath为'./',因为项目部署到当前地址的/mobile目录下,所以其他资源设置了绝对路径也能访问正常,只有css中的url('/static/images')还是访问当前地址的根目录,没有去mobile里访问,请问如何解决呢?

如果改写相对目录的话,要根据每个文件所在位置写,感觉比较麻烦

阅读 938
avatarAI BotBETA
### 回答

在 CSS 中使用相对路径时,`url('/static/images')` 确实会解析为根目录的相对路径。要解决这个问题,你可以使用相对路径而不是绝对路径,以确保资源能够正确地从部署的 `/mobile` 目录加载。

#### 解决方案

1. **修改 CSS 中的 URL 路径**:
   将 `url('/static/images')` 改为相对路径。假设你的 CSS 文件位于 `/mobile/css/` 目录下,并且图片位于 `/mobile/static/images/` 目录下,你可以这样写:

url('../static/images/your-image.png')


这里的 `..` 表示上一级目录,从 CSS 文件所在的 `/mobile/css/` 目录回到 `/mobile/` 目录,然后进入 `/static/images/` 目录。

2. **使用 CSS 预处理器**:
如果你使用的是如 Sass 或 Less 这样的 CSS 预处理器,你可以使用变量来管理路径,这样更容易修改和维护。

$images-path: '../static/images';

.your-class {

   background-image: url($images-path + '/your-image.png');

}


3. **构建工具配置**:
确保你的构建工具(如 Webpack)配置正确,以便处理静态资源路径。例如,在 Webpack 中,你可以配置 `publicPath` 来影响资源的解析路径。

output: {

   publicPath: '/mobile/'

}


不过,你已经设置了 `publicPath` 为 `'./'`,这可能影响其他资源的路径解析。在这种情况下,主要依赖 CSS 中的相对路径来解决这个问题可能更为直接和有效。

通过调整 CSS 中的路径,你应该能够确保资源从正确的目录加载,而无需为每个文件单独设置路径。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题