2011-07-21 56 views
0

即時通訊頗爲意識到Codeigniter,但在嘗試將靜態網站轉換爲CI時遇到此問題。使用某些URL時加載css文件時發生問題。我試圖嚴格保持PHP遠離意見(事實上只有.html頁面的意見)。codeigniter中的奇怪行爲與加載的CSS,js,img fileswhen斜線(/)添加在URL的末尾

我也搜索了很多論壇的加載CSS的解決方案。我遇到了一些解決方案,但只有在CI中創建全新網站時纔有所幫助。我知道

使用HREF鏈接之前,使其網站獨立的

但不想用這個,因爲我想現有的靜態網站轉換成CI。這意味着每個文件都會改變每個href。 (如果頁面很多,看起來就像是一場噩夢)。

我無法在特定條件下加載css和其他資源文件。下面是對我迄今在項目中所做的所有事情的描述。在根

  1. 用於htaccess來除去 「的index.php」 文件附帶笨2.0.2
  2. 所有圖像和資源(例如,CSS,IMG,JS
  3. 中使用的標準的文件夾結構。等等)直接放置在根文件夾中(即應用程序&系統文件夾所在的位置)
  4. 從視圖文件訪問所有資源,就好像html文件與資源一起位於根文件夾中(如.href =「css/style.css」)

下面是控制器

class Blog extends CI_Controller { 

public function index(){ 
    $this->load->view('blog.html'); 
    } 

public function posts(){ 
    $this->load->view('post.html'); 
    } 
} 

的樣本描述現在我面臨的一個問題的問題是當我使用的「索引」功能的某些URL。 。該CSS被正確加載。

但是,如果我添加一個斜槓後,或使用任何其他功能。加載CSS時出現問題。

例如,

/* This url loads css correctly */ 
http://localhost/ci-test/blog 

/* these urls do not load css */ 
http://localhost/ci-test/blog/ 
http://localhost/ci-test/blog/posts 

有什麼我做錯了嗎?或者我的.htaccess文件有問題? (包括在內)

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

我需要做什麼才能以最小的努力將當前網站導入到CI中。

回答

1

您可以嘗試這樣的事:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !^(index\.php|images|css|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [L,QSA] 

不知道這會持續的規則將工作,因爲我不知道如何CI的路由工作,但用於與Zend和Symfony的路由器它就是即時通訊。

1

從視圖文件中訪問所有資源,就好像html文件與資源一起位於根文件夾中(例如.href =「css/style」。CSS「)

好了,不能工作,如果瀏覽器發現可能有嵌套目錄的多層次,外部URL可以嗎?爲了從ci-test/blog相對URL的工作,你就必須引用css/style.css,而使其從ci-test/blog/posts工作,它只能是../css/style.css

我建議植根網址替換像/ci-test/css/style.css所有引用,或者如果這是一個使用<base href="/ci-test/"><head>相似,使太多的工作都相對URL表現爲相關到根源的URL。

相關問題