我使用绝对路径来引用css,图像和javascript文件等资源。所以在<head>
的{{1}}我有类似的东西:
index.html
假设我的项目目录如下所示:
- index.html - assets/ -- css/ --- style.css
这在我的本地网络服务器上工作正常,我使用<link href="/assets/css/style.css" rel="stylesheet">
指令将文档根目录设置到此目录。但是当我把它放在网络服务器的子目录(例如<virtualhost>
)上时,它在访问http://www.example.com/subdirectory/
时不再找到资产。
如何在http://www.example.com/subdirectory/index.html
中不必使用相对路径的情况下解决这个问题?可以通过子目录中的.htaccess文件来实现吗?如果是,怎么样?
网络服务器的根级别上还有其他文件夹,不应受index.html
答案 0 :(得分:3)
如果所有内容低于subdirectory
,您可以使用简单的重写
RewriteEngine on
# don't rewrite, if it is already rewritten
RewriteCond %{REQUEST_URI} !^/subdirectory
# only rewrite requests for files below /assets
RewriteCond %{REQUEST_URI} ^/assets/
RewriteRule ^.*$ /subdirectory/$0 [L]
答案 1 :(得分:0)
你可以把它放在脑子里:
<base href="http://www.example.com/subdirectory/">