在直接加载具有多级路由片段的页面时,我遇到麻烦让Apache重写工作。以下是两个例子:
这是我的虚拟主机配置:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.html [L]
示例1: http://www.fakewebsite.com/products(正在工作)
当我使用单个路径片段打开示例1 URL时,使用下面的Apache配置加载时没有问题。使用http://www.fakewebsite.com/assets/image1.png
正确加载资产。
示例2: http://www.fakewebsite.com/products/12345(不工作)
当我打开带有两个片段的示例2 URL时,页面无法加载。它没有加载,因为我的所有css和js文件都试图从http://www.fakewebsite.com/products/assets/image1.png
加载。
如何才能让这个用于示例2?我认为使用RewriteBase /
和RewriteRule ^index\.html$ - [L]
会强制所有非html文件使用基础而不是片段。
答案 0 :(得分:1)
最简单和标准的方法是使用文档根目录中的绝对路径定义所有资产:
<img src="/assets/image1.png">