【问题标题】:Problems with ZEND 1 and assets (css, images, js) - Page not foundZEND 1 和资产(css、图像、js)的问题 - 找不到页面
【发布时间】:2017-05-24 14:42:05
【问题描述】:

我正在使用 Zend Framework 1,一切正常,除了一件事。我的网站不加载资产。我知道这可能是 .htaccess 的问题,但我尝试了很多方法来解决这个问题,但没有成功。

我的文件夹结构是:

|- /
|---application
|---library
|---public
|------assets
|------cgi-bin
|------images
|---resources

我的 .htaccess 文件(在 /public 文件夹内):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

不幸的是,当我访问该网站时,它会加载所有内容,但位于我的 /public/assets 和 /public/images 文件夹中的文件除外。当我尝试通过 URL 访问文件时,ZEND 会返回“找不到页面”错误。

谁知道我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: php css .htaccess zend-framework assets


    【解决方案1】:

    我假设您使用的是共享主机并且没有修改 Apache vhost 条目的权限。在这种情况下,您遇到的问题很常见。

    一个对我有用的解决方案是我称之为“下推和保护”的解决方案,您可以将所有 ZF 内容(applicationdatalibrary 等)下推到它的拥有_zf 目录作为assets 的兄弟,在您的public 目录中。然后将DENY ALL 添加到.htaccess 目录中的.htaccess 并调整顶级public/index.php 入口点中的路径。

    注意:.htaccess 中添加 DENY ALL 是CRITICAL,因为标准 ZF 设置具有配置、凭据和其他您不希望使用的数据可通过网络直接访问。这无疑是这种方法的一个缺点。如果您忘记保护该目录,那么您就是敞开的。

    这种方法是this answer 的基础,在here 中有更详细的解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多