IE에서 css 파일 미인식 문제


#1

wiz200에 올린 css 파일이 IE에서

SEC7113: MIME 형식이 일치하지 않아 CSS가 무시되었습니다.

라고 나와 css 파일이 적용되지 않습니다.

css 파일 요청 응답헤더에 Content-Type: text/css 를 추가해야 하는 것 같은데요

blogs.msdn.com/b/ie/archive/2010 … lorer.aspx

추가해야 한다면 해당 부분 예제로 보여주세요


#2

안녕하세요.

위즈네트 WIZ200web 모듈의 데모 웹 페이지에 포함된 css 파일을 수정하신 것인지,
아니면 별도로 다른 형식의 css 파일을 올리신 것인지 알려주셨으면 합니다.
더불어 사용 중 이신 IE 버전도 함께 알려주시면 좋겠네요.

그리고, HTTP 응답 시 Content-type의 수정 / 추가를 원하신다면 다음과 같이 수행하시면 됩니다.
httpd.c 내 find_http_uri_type(), make_http_response_head() 함수에 원하는 content-type에 대한 구문을 수정 / 추가하시고, httpd.h 파일 내에서 해당하는 type에 대한 RES_xxx_OK define을 수정 혹은 추가하시면 됩니다.


#3

IE 버전은 10입니다.

데모에 포함되었던 css 와 따로 추가했던 css 파일 모두 안되네요.

크롬이나 파이어폭스에서는 문제없습니다.


#4

위에 간단히 말씀드린 것과 같이,
CSS의 처리를 다른 content type들과 마찬가지의 형태로 펌웨어 내에 추가하면
해당 파일 요청에 대한 응답이 오는 것을 확인 하실 수 있습니다.

/* httpd.h */

/* Response head for CSS */
#define RES_CSSHEAD_OK	"HTTP/1.1 200 OK\r\nContent-Type: text/css\r\nContent-Length: "	
/* httpd.c */

/**
 @brief	make reponse header such as html, gif, jpeg,etc.
 */ 
void make_http_response_head(
	char * buf, 	/**< pointer to response header to be made */
	char type, 	/**< response type */
	u_long len	/**< size of response header */
	)
{
	char * head;
	char tmp[10];
			
	/*  file type */
	if 	(type == PTYPE_HTML)       head = RES_HTMLHEAD_OK;
	else if (type == PTYPE_GIF)	head = RES_GIFHEAD_OK;
	else if (type == PTYPE_TEXT)	head = RES_TEXTHEAD_OK;
	else if (type == PTYPE_JPEG)	head = RES_JPEGHEAD_OK;
	else if (type == PTYPE_FLASH)	head = RES_FLASHHEAD_OK;
	else if (type == PTYPE_XML)       head =  RES_XMLHEAD_OK;
	else if (type == PTYPE_CSS)        head = RES_CSSHEAD_OK;
#ifdef HTTPD_DEBUG	
	else	PRINTLN("\r\n\r\n-MAKE HEAD UNKNOWN-\r\n");
#endif	

	sprintf(tmp,"%ld", len);	
	strcpy(buf, head);
	strcat(buf, tmp);
	strcat(buf, "\r\n\r\n");
}

/**
 @brief	find MIME type of a file
 */ 
void find_http_uri_type(
	u_char * type, 	/**< type to be returned */
	char * buf		/**< file name */
	) 
{
	/* Decide type according to extention*/
	if 	(strstr(buf, ".htm"))				        *type = PTYPE_HTML;
	else if (strstr(buf, ".gif"))				        *type = PTYPE_GIF;
	else if (strstr(buf, ".text") || strstr(buf,".txt"))	*type = PTYPE_TEXT;
	else if (strstr(buf, ".jpeg") || strstr(buf,".jpg"))	*type = PTYPE_JPEG;
	else if (strstr(buf, ".swf")) 				        *type = PTYPE_FLASH;
	else if (strstr(buf, ".cgi") || strstr(buf,".CGI"))	*type = PTYPE_CGI;
	else if (strstr(buf, ".js") || strstr(buf,".JS"))	*type = PTYPE_TEXT;	
	else if (strstr(buf, ".xml") || strstr(buf,".XML"))	*type = PTYPE_XML;
	else if (strstr(buf, ".css") || strstr(buf,".CSS"))	*type = PTYPE_CSS;	
	else 							                *type = PTYPE_ERR;
}