2010-11-17 37 views
0

我有像這樣的.htaccess mod_rewrite的繞過了深刻的目錄結構CSS資產

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

的設置0

我不希望有每次我想訪問一個CSS文件時,寫入

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

(同樣適用於圖像ECT)

我希望能夠到只需使用 http://localhost/ci_tada/css/master.css

並讓它加載正確的文件。

.htaccess文件位於ci_tada文件夾中。

回答

0

看起來你在框架內使用某種路線。你應該檢查一下,因爲一些框架可以讓你選擇在應用程序配置中執行它。

<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> 

Beware that the last two redirect everything that contains /css/ in the path.


edit:1: It is considered best practice in CI (from what I've read), to set a static directory on your root like this:

 

    /
    .../static 
    ......./css 
    ......./js 
    .../application 
    ......./controller 
    .../... 

So that you can simply use /static/css/file.css內嵌於您的意見。還看到這些資源,如果他們能幫助:

+0

啊,我什至沒有想到路由。關於如何在代碼Igniter中執行路由的任何想法,據我所知,路由仍然通過index.php – Hailwood 2010-11-17 02:32:14

+0

回覆上面編輯:1 – eagleal 2010-11-17 02:38:33

+0

您可以告訴我們您的.htaccess,所以我可以集成它與上面的答案。也看到這個SO線程,如果它有幫助http://stackoverflow.com/questions/3729340/how-do-i-add-some-static-routes-to-a-codeigniter-app – eagleal 2010-11-17 02:59:17

0

我覺得你說的是Zend框架。你的幾行是

/

/應用

怎麼能每次請求可以被重定向到CSS /?那麼你的應用程序將無法工作!

在Zend Framework中,應用/佈局/腳本/ layout.phtml,你提到的css文件是這樣的:

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

CSS文件進去項目文件夾。它在應用程序文件夾外部: \ quickstart2 \ public \ css。

希望我不會收到答案。

+0

Code Igniter實際上:) – Hailwood 2010-11-17 02:27:34

+0

好吧,ZF有這個設施。代碼點火器也應該有這樣的。如果您在開發時修復代碼,那麼在後期階段,您可能會遇到麻煩! – 2010-11-17 02:45:09