我正在本地服务器的根文件夹中开发网站,问题是当我的客户告诉我将网站上传到他们的服务器时,它位于子文件夹中。所以url一直是这样的。http://example.com/myproject
这种格式的问题是我所有的 css、js、ajax 调用都搞砸了,因为当我尝试检查 Firebug/chrome 控制台时,我看到一个http://example.com/assets/css/main.css
,实际上它应该在哪里http://example.com/myproject/assets/css/main.css
我所有的脚本都被编码成这样:
<link rel="stylesheet" href="/assets/css/main.css">
因为当项目不在子文件夹中时,它可以完美地工作。
我现在的问题是,是否有一个技巧,也许在 .htaccess 或 mod_rewrite 中可以让我告诉浏览器总是在我的所有脚本调用中添加一个 /myproject ?
这样做的原因是我不想更改所有脚本调用并添加一个/myproject/...
这是我的 .htaccess 示例:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Allow asset folders through
RewriteRule ^(fuel/modules/(.+)?/assets/(.+)) - [L]
# Protect application and system files from being viewed
RewriteRule ^(fuel/install/.+|fuel/crons/.+|fuel/data_backup/.+|fuel/codeigniter/.+|fuel/modules/.+|fuel/application/.+) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [L]
# Prevents access to dot files (.git, .htaccess) - security.
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
Options -Indexes
对你的帮助表示感谢!谢谢!