我在一个子文件夹中安装了一个Zend Framework应用程序,如下所示:
www.mydomain.com/temp/zend-application/现在的问题是所有的样式表、javascript文件以及所有的链接都使用相对路径,例如:
/css/styles.css
/js/jquery.js
/controller/action这些内容转到主域,如下所示:
www.mydomain.com/css/styles.css
www.mydomain.com/js/jquery.js
www.mydomain.com/controller/action那么如何让它在该子文件夹中工作呢?
我的.htacces文件现在看起来像这样:
RewriteEngine On
# Exclude some directories from URI rewriting
#RewriteRule ^(dir1|dir2|dir3) - [L]
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]编辑:我已经使用前端控制器的setBaseUrl()方法解决了这个问题。现在的问题是如何编辑我的.htaccess文件。
发布于 2009-10-11 15:01:42
最好的解决方案是在您的应用程序中使用set a BaseUrl。如果您在.htaccess中设置了RewriteBase,应该会自动检测到这一点。路由器和其它组件知道此设置,可以生成适当的链路。
有一个view helper可以让链接到资产变得更容易。
或者,您可以在文档头中使用标记来修复这些链接。
<html>
<head>
<base href="http://www.mydomain.com/temp/zend-application/">
</head>在http://www.w3schools.com/TAGS/tag_base.asp上进一步阅读
发布于 2009-10-11 18:33:59
我肯定会使用baseUrl()视图助手,并将其添加到CSS和JS的路径中。
https://stackoverflow.com/questions/1550840
复制相似问题