【问题标题】:Zend keep front controller from blocking image requestsZend 防止前端控制器阻塞图像请求
【发布时间】:2012-05-04 03:33:28
【问题描述】:

每当我在 Zend Framework 应用程序中使用 <img> 标记时,都不会显示任何图像。当我在地址栏中输入绝对路径时,前端控制器会尝试查找“图像”控制器。

我必须有一种方法可以在 Zend Framework 中使用 <img src="/public/images/logo.png"> 对吗?

我已经在视图、布局和助手中尝试过,但没有运气。我还通过从前端控制器获取信息使用了$this->baseURL() 技术和serverURL() 技术,但它仍然不会显示图像......网站上的任何地方。 (除非我执行@import('/css/main.css')

【问题讨论】:

    标签: zend-framework zend-controller zend-config


    【解决方案1】:

    听起来您的 .htaccess 文件有问题 您必须从重写规则中排除这些文件,否则这些请求将被路由到 index.php。

    /public/.htaccess

    RewriteEngine on
    RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
    

    【讨论】:

    • 这几乎肯定是答案。您的 Web 服务器(而不是 ZF)应配置为提供静态文件,而不是将 URL 重写为 index.php。
    • 所以我猜重写规则的意思是不要将带有扩展名(这些类型的)的请求路由到 index.php?我确实在文档中看到了这一点,但我认为这意味着将任何类型的请求(等...)路由到 index.php
    • 另外,根据 Zend 的文档,它不应该将 document_root 下的任何内容(/public 文件夹中的任何内容)路由到 Rewrite Anyways?我将上面的行插入到 .htaccess 文件中,没有得到结果。这是我现在的文件:SetEnv APPLICATION_ENV development RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php RewriteRule ^.*$ index.php [NC,L]
    猜你喜欢
    • 2015-09-11
    • 2021-10-12
    • 2021-10-29
    • 1970-01-01
    • 2011-03-22
    • 2021-11-12
    • 2012-12-24
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多