【问题标题】:Zend Framework in a subfolderZend 框架在子文件夹中
【发布时间】:2010-02-26 02:00:04
【问题描述】:

我在子文件夹中安装了 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 文件。

【问题讨论】:

  • 你能做到吗?您最终在 .htaccess 文件中修改了什么?

标签: zend-framework .htaccess


【解决方案1】:

最好的解决方案是在您的应用程序中使用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

【讨论】:

    【解决方案2】:

    我肯定会使用附加到 CSS 和 JS 路径的 baseUrl() 视图助手。

    【讨论】:

      猜你喜欢
      • 2015-02-07
      • 2011-01-16
      • 2012-01-10
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多