【问题标题】:Using .htaccess mod_rewrite to bypass a deep directory structure to CSS assets使用 .htaccess mod_rewrite 绕过 CSS 资产的深层目录结构
【发布时间】:2010-11-17 02:12:06
【问题描述】:

我有这样的设置

http://localhost/
http://localhost/ci_tada/
http://localhost/ci_tada/application
http://localhost/ci_tada/application/views
http://localhost/ci_tada/application/views/css
http://localhost/ci_tada/application/views/css/master.css

我不想写

http://localhost/ci_tada/application/views/css/

每次我想访问一个 css 文件(同样适用于图像等)

我希望能够使用 http://localhost/ci_tada/css/master.css

并让它加载正确的文件。

.htaccess 文件位于 ci_tada 文件夹中。

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    看起来您正在框架内使用某种路由。您应该检查一下,因为某些框架为您提供了在应用配置中执行此操作的选项。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    # directory base, untogle if you want to
    # rewrite only starting from /<directory/path>
    # RewriteBase /
    
    RewriteRule ^/css/(.*)$ index.php/ci_tada/application/views/css/$1 [PT,L]
    #or RewriteRule ^/(.*)/css(.*)$ index.php/$0/views/css$1 [PT,L]
    #or RewriteRule ^/(.*)/css/(.*)$ index.php/$0/views/css/$1 [PT,L]
    
    </IfModule>
    

    注意最后两个重定向路径中包含 /css/ 的所有内容。


    edit:1:在 CI 中(从我读过的内容)被认为是最佳实践,在您的根目录上设置一个静态目录,如下所示:

    / .../静止的 ......./css ......./js .../应用 ......./控制器 .../...

    这样您就可以在视图中简单地使用 /static/css/file.css 内联。如果可以提供帮助,请参阅这些资源:

    【讨论】:

    • 啊我什至没有考虑路由。关于如何在代码 Igniter 中进行路由的任何想法,据我所知,路由仍然通过 index.php
    • 你能告诉我们你的.htaccess,所以我可以把它和上面的答案结合起来。如果有帮助,请参阅此 SO 线程 stackoverflow.com/questions/3729340/…
    • 我最终使用了您的第二种方法,将资产文件夹移至根目录。
    【解决方案2】:

    我觉得你在谈论 Zend 框架。你的几行是

    /

    /应用程序

    如何将每个请求重定向到 CSS/?那么您的应用程序将无法运行!

    在 Zend Framework 中,application/layouts/scripts/layout.phtml,你提到的 css 文件是这样的:

    <?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/site.css'); ?>
    

    Css 文件进入项目文件夹。它在应用程序文件夹之外: \quickstart2\public\css。

    希望我不会收到 -ve 答案。

    【讨论】:

    • 好的,采埃孚有这个设施。 Code Igniter 也应该这样。如果您在开发时修复代码,那么在后期您可能会遇到麻烦!
    猜你喜欢
    • 2014-11-25
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    相关资源
    最近更新 更多