2013-04-12 52 views
0

转移,你不应该已经被消息了解下面样式表使用MIME类型text/html

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/EcoVis/user/css/style.css". login:5 
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/EcoVis/user/css/navigation.css". 

我的问题,我使用的是Win7上64位XAMPP。

使用以下MVC构建应用程序。 我没有使用任何框架,只是为了更好地理解而从地面上构建。 Apache重写已启用,并且.htaccess正在使用中,以便仅限于输入index.php。

## Can be commented out if causes errors, see notes above. 
Options +FollowSymLinks 

#Folder indexing 
Options -Indexes 

# mod_rewrite in use 

RewriteEngine On 

########## Begin - Rewrite rules to block out some common exploits 
## If you experience problems on your site block out the operations listed below 
# 
## Deny access to extension xml files (uncomment out to activate) 
#<Files ~ "\.xml$"> 
    #Order allow,deny 
    #Deny from all 
    #Satisfy all 
#</Files> 

#Secure access to php files except from index.php,proxy_get.php,proxy_post.php 
<FilesMatch "\.php$"> 
    Order Allow,Deny 
    Deny from all 
</FilesMatch> 
#Allow access only to index files of each folder. 
<FilesMatch "^(index)\.php$"> 
    Order Allow,Deny 
    Allow from all 
</FilesMatch> 


RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 
# Block out any script trying to base64_encode crap to send via URL 
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] 
# Block out any script that includes a <script> tag in URL 
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] 
# Block out any script trying to set a PHP GLOBALS variable via URL 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block out any script trying to modify a _REQUEST variable via URL 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
# Send all blocked request to homepage with 403 Forbidden error! 
RewriteRule ^(.*)$ index.php [F,L] 


# Uncomment following line if your webserver's URL 
# is not directly related to physical file paths. 

# RewriteBase/


########## Core sef Section 
# Index.php is the only gateway to the webapp 
# If the request is for a real directory (one that exists on the server), index.php isn't served. 
RewriteCond %{REQUEST_FILENAME} !-f 
#If the request is for a file that exists already on the server, index.php isn't served. 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA] 

Index php进行一些初始化,并触发下面给出的主控制器。

<?php 

/** 
* Controller decides where the next step will be. 
* Web server's RewriteEngine On is needed. 
* the rt from _GET['rt'] is defined in .htaccess 
* 
*/ 

class controller extends baseController { 

    public function load() 
    { 
     /* get the route from the url */ 
     $route = (empty($_GET['rt'])) ? '' : $_GET['rt']; 

     if (empty($route)) 
     { 
     $controller = 'main'; 
     $action = NULL; 
     } 
     else 
     { 
     /* decide the route */ 
     $parts = explode('/', $route); 
     switch ($parts[0]) { 
      case 'uploaddata': 
      $controller = 'uploaddata'; 
      $action = $parts[1]; 
      break; 
      case 'exportdata':    
      break; 
      case 'user': 
      $controller = 'user'; 
      $action = $parts[1]; 
      break;    
      case 'about': 
      break; 
      default: 
      break; 
     } 
     } 

      require_once __SITE_PATH . '/controller/controller_' . $controller . '.class.php'; 
      $controller = 'controller_' . $controller; 
      $c = new $controller($this->registry); 
      $c->load($action);   
    } 
} 

?> 

然后是一个子控制器,如果遵循。确切的工作是由子控制器和一个模板文件确定的,该模板文件由html组成,但是具有php扩展名。从上传子控制器加载的模板文件(按照原意工作)在下面给出。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
     <title>Visualization of Economic Data</title> 
     <link rel="shortcut icon" href="favicon.ico"/> 
     <link href="css/style.css" rel="stylesheet" type="text/css" media="screen"/> 
     <link href="css/navigation.css" rel="stylesheet" type="text/css" media="screen"/> 
     <script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>  
     <script type="text/javascript" src="scripts/uploaddata.js"></script>  
    </head> 
    <body> 
     <div id="main"> 
     <?php 
      include(__SITE_PATH . '/views/header.php'); 
      include(__SITE_PATH . '/views/uploaddata.php'); 
      include(__SITE_PATH . '/views/footer.php'); 
     ?> 
     </div> 
    </body> 
</html> 

页面加载和后按Ctrl-U拥有在页面代码,并点击“CSS/style.css中”一看,如下图所示,在浏览器加载一个新的页面的CSS文件。这就是我期待的事情,它正在发生。

<link href="css/style.css" rel="stylesheet" type="text/css" media="screen"/> 

坏消息现在开始。

当我的主控制器加载子控制器用户(用于登录,注销等)和登录模板(正如下面给出的)被加载时,我得到了所有我期望的html元素,但css方向不适用。相反,我得到的信息显示在页面的顶部。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
     <title>Visualization of Economic Data</title> 
     <link rel="shortcut icon" href="favicon.ico"/> 
     <link href="css/style.css" rel="stylesheet" type="text/css" media="screen"/> 
     <link href="css/navigation.css" rel="stylesheet" type="text/css" media="screen"/> 
    </head> 
    <body> 
     <div id="main"> 
     <?php 
      include(__SITE_PATH . '/views/header.php'); 
      include(__SITE_PATH . '/views/login.php'); 
      include(__SITE_PATH . '/views/footer.php'); 
     ?> 
     </div> 
    </body> 
</html> 

再次检查代码并点击CSS/style.css中一个新的空白页面加载和一个呼叫到具有由所述控制器处理的CSS/style.css中(逻辑为类型作为输入服务器发出是text/html)。

我在网上搜索,但我找不到任何解决方案。 Apache配置正确(或不),因为它适用于上传部分。 我在.htaccess文件中添加了以下行,但没有运气。

AddType text/css .css 

发生什么事情的任何想法?

+0

:希望这会帮助你:) http://stackoverflow.com/questions/3467404/chrome-says-resource-interpreted-as-script-but-transferred-with-mime-type-text – dreamweiver

回答

1

如果在向httpd.conf和root .htaccess都添加“AddType text/css css .css”并重新加载你的apache,另一个可能的问题是我会将错误归因于路径 - 路径区分大小写。

也尝试从根目录的绝对路径。即代替“CSS/Styles.css中”使用“/css/styles.css”

+0

谢谢你的路径的想法。 – ineersa

0

要解决与CSS问题,这个问题检查在bin/apache中发现的文件夹中的文件/conf/mime.types /找到它的apache版本/文件夹。然后,您想要在此时搜索文件扩展名,以便稍后在httpd.config文件中使用AddType和AddHandler指令来配置模块。 httpd。配置文件将是这个样子

AddType text/CSS .css 
AddHandler text/css .css 

根据什么媒体类型的mime.types设置为

另外的路径应该有一个“/”像这样

"/styles/style.css" or "/style.css" 

还可以使用这在CSS文件中

<?php header("Content-Type:text/css; charset: UTF-8"); ?> 

而只是将样式表链接到php文件:)

0

检查/etc/apache2/apache2.conf 如果有任何SetHandler application/x-httpd-php线,试评,然后由$ sudo system apache2 reload

重装你的Apache让我们知道,如果这个问题仍然存在。

相关问题