2016-07-06 37 views
-1

我是CodeIgniter和MVC架構的新手,但我非常熟悉PHP。這是我面臨的問題:當本地在本地主機上運行時CodeIgniterCSS&JS不加載

我通過cpanel下載了實時網站的源代碼(該網站是在codeignitor上開發的),現在我試圖修改本地主機上的網站。

我需要改變網頁的樣式,但我無法讓網站在localhost環境下加載它的CSS & JS,只有html被加載。 我檢查了各種配置和環境設置。 在配置文件中,我更改了localhost的$config['base_url']= "http://localhost/sitename/",並且其他配置變量已經設置(因爲我下載了源代碼)。

現在,當我在本地主機上運行網址http://localhost/sitename/,只有html沒有任何樣式加載,css/js什麼也沒有!

我也注意到以下幾點:(認爲它可能是有用的)

的文件,如header.phpfooter.php的CSS & JS文件都包含這樣的<link href = "<?php echo WEB_ROOT; ?>/css/main.css" rel = "stylesheet" type = "text/css"/><script src="<?php echo WEB_ROOT; ?>/js/main.js"></script>

而實際上的CSS和JS文件中實際存在root\assets\css\root\assets\js\

所以,

  1. 我應該如何查看完整的網站(因爲它是在網上,所有的CSS & JS )在本地主機上?有任何設置或腳本需要更改嗎?
  2. 它在實際網站上的工作情況如何? (錯誤路徑設置爲訪問CSS & JS)

幫助。謝謝! (請讓我知道如果我需要提供更多細節)

+0

你從哪兒弄來'WEB_ROOT',什麼是'SRC = 「/ CSS/main.css的」'給你?您需要使用瀏覽器來**檢查實時DOM **,以查看該文件包含的CSS和JavaScript的URL。一旦你看到這些,你就會有更好的機會知道要改變什麼設置來解決這個問題。 – Sparky

+0

閱讀手冊也不會傷害:http://www.codeigniter.com/user_guide/helpers/url_helper.html#base_url – Sparky

+0

它實際上是帶有鏈接標籤而不是src的'href =「..」'。錯字,我的壞!我只寫了href部分,將注意力集中在路徑和'WEB_ROOT'常量上(現在結果是沒有什麼,就像你和其他人說的那樣)。 – Doper

回答

0

第一件事:

確保Apache在rewrite_mode.htaccess文件是在正確的位置。

在config.php文件:

$config['base_url'] = 'http://localhost/yourappfoldername/'; 

在控制器:

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->helper(array('url')); 

    //======== or simply =============== 

    $this->load->helper('url'); 

} 

你的CSS和JS網址:

<link rel="stylesheet" type="text/css" href="<?php echo base_url('index.php/assets/css/styleshee.css');?>"> 

如果您使用mod_rewrite刪除index.php頁面設置此變量空白:

$config['index_page'] = ''; 

.htaccess文件(刪除的index.php ):

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

更改您的路線,因爲沒有index.php pa GE。如果index.php文件被刪除:

<link rel="stylesheet" type="text/css" href="<?php echo base_url('/assets/css/styleshee.css');?>"> 
+0

你也可以把URL Helper放到'autoload.php'文件中。請不要將答案作爲一個巨大的代碼塊發佈。代碼在代碼塊內進行;其他一切都沒有。編輯。 – Sparky

1

確保你的CSS和圖像等超出應用程序文件夾

project > application 

project > assets > 

project > assets > css 

project > assets > images 

project > assets > js 

然後自動加載的url幫手的一面。 $this->load->helper('url');

然後

<link rel="stylesheet" type="text/css" href="<?php echo base_url('assets/css/styleshee.css');?>"> 

正如你已經做了設置基本URL

$config['base_url']= "http://localhost/sitename/"; 

的index.php如果你不使用.htaccess創建漂亮的網址,您可能需要包括。

<link rel="stylesheet" type="text/css" href="<?php echo base_url('index.php/assets/css/styleshee.css');?>"> 
+0

CSS和類似文件夾已經位於應用程序文件夾之外(如您所描述的那樣,屬於資產內部)。此外,.htaccess已被用於URL重寫。我嘗試了'base_url()'函數,但它給了一個錯誤'調用未定義的函數base_url()' – Doper

+0

你能告訴我在哪裏添加autoload url helper嗎?在'autoload.php'猜測? – Doper

+0

config/autoload。php你應該閱讀用戶指南http://www.codeigniter.com/user_guide/general/autoloader.html?highlight=autoload – user4419336

1

常量WEB_ROOT不是Codeigniter框架的一部分。所以首先要做的就是找到定義並修改它,使其與localhost域匹配。它可能被定義爲特定的活動域。顯然本地主機是一些其他的域名。

或者,做什麼@ wolfgang1983他回答說。 (這是我寫這篇文章時發佈的,也是我要說的。)

1

我做的是如下的方式:

<link rel="stylesheet" href=<?php echo base_url('assets/css/main.css'); ?> /> 

那麼當你的資產沒有裝,你可以在你的網頁瀏覽器解決它。您可以通過點擊檢查>網絡來完成此操作。然後刷新頁面並查看codeigniter正在嘗試從哪裏讀取文件。如果不正確,通常可以看到發生了什麼問題。 (例如,我曾經有過,我的資產正在從加載:localhost/localhost/assets/*/*
我希望這可以幫助你

相關問題