묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
php 5,3.6 에서 크롬, 파폭, 오페라 css가 먹히지 않습니다.
2011.07.31 17:51
php 버젼 5.3.6에서 xe의 css가 먹히지 않습니다.
문제는 모든 브라우져가 안되는 것이 아니라 IE8을 제외한 나머지 브라우져에서 안된다는 것입니다.
여러가지 방법으로 원인을 찾던 중 dtd 선언 부분에서 문제가 있다는 것을 발견했습니다.
xe의 dtd 선언이 아래와 같습니다.
1)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
서버 php 5.2.x 일 경우는 IE8, 크롬, 파폭, 오페라 모두에서 css가 정상적으로 표현됩니다.
그런데 php 5.3.6 일 경우는 IE8은 되고 나머지 브라우저에서는 css가 표현이 안되더라고요..
그래서 dtd 선언 부분의 dtd 경로 부분에 있는 쌍따옴표(")를 제거하니까 모든 브라우져에서 다 보였습니다.
2)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
그리고 php.ini의 defaut mimetype 도 변경해봤습니다.
php 5,3,6 일 때.
1)번 선언일 경우
default_mimetype = text/html ==> IE8을 제외한 다른 브라우져 css 안됨
default_mimetype = text/css ==> 모든 브라우져에서 css 먹힘
2)번 선언일 경우
default_mimetype = text/html ==> 모든 부라우져에서 css 먹힘
default_mimetype = text/css ==> IE8을 제외한 다른 브라우저에서 css 안 먹힘, 이 경우는 dtd 선언이 조금만 어긋나면 안 먹히는 것 같음.
결론은 php 5.2.x일 경우는 문제 없었는데 5.3.x으로 업그레이드 하고 위와 같은 문제가 생겼습니다.
일반적으로 1)번과 같이 선언하고 php.ini의 default_mimetype = text/html 일 때 정상으로 나와야 되는게 가장 좋은 것 같습니다.
php 설정의 문제 인 것 같은데...
혹시 이와 같은 문제를 해결 하신 분 답변 부탁합니다.
문제는 모든 브라우져가 안되는 것이 아니라 IE8을 제외한 나머지 브라우져에서 안된다는 것입니다.
여러가지 방법으로 원인을 찾던 중 dtd 선언 부분에서 문제가 있다는 것을 발견했습니다.
xe의 dtd 선언이 아래와 같습니다.
1)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
서버 php 5.2.x 일 경우는 IE8, 크롬, 파폭, 오페라 모두에서 css가 정상적으로 표현됩니다.
그런데 php 5.3.6 일 경우는 IE8은 되고 나머지 브라우저에서는 css가 표현이 안되더라고요..
그래서 dtd 선언 부분의 dtd 경로 부분에 있는 쌍따옴표(")를 제거하니까 모든 브라우져에서 다 보였습니다.
2)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
php 5,3,6 일 때.
1)번 선언일 경우
default_mimetype = text/html ==> IE8을 제외한 다른 브라우져 css 안됨
default_mimetype = text/css ==> 모든 브라우져에서 css 먹힘
2)번 선언일 경우
default_mimetype = text/html ==> 모든 부라우져에서 css 먹힘
default_mimetype = text/css ==> IE8을 제외한 다른 브라우저에서 css 안 먹힘, 이 경우는 dtd 선언이 조금만 어긋나면 안 먹히는 것 같음.
결론은 php 5.2.x일 경우는 문제 없었는데 5.3.x으로 업그레이드 하고 위와 같은 문제가 생겼습니다.
일반적으로 1)번과 같이 선언하고 php.ini의 default_mimetype = text/html 일 때 정상으로 나와야 되는게 가장 좋은 것 같습니다.
php 설정의 문제 인 것 같은데...
혹시 이와 같은 문제를 해결 하신 분 답변 부탁합니다.
댓글 2
-
ForHanbi
2011.07.31 20:45
다른건 몰라도 dtd는 "" 가 있어야 맞습니다 -
마루아빠
2011.08.01 04:33
네~~ dtd를 정확하게 표현해줘야 하는데... 오히려 "" 를 제거하니까 정상적으로 보이니까 미칠 노릇입니다. php 설정에서 뭔가가 있는데 왠만한 설정은 다 변경해보면서 테스트 했는데도 이유를 알 수 없습니다. ㅜㅜㅜ -
마루아빠
2011.08.01 06:53
흐음... 다른 서버 살펴보니 php 5.3.2 / xe 1.4.0.10 에서는 제대로 나오는군요.
이리저리 헤맨 결과 apache 서버에 AddType text/css .css 옵이 붙은 것 같습니다.
암튼
php 5.3.6에서 크롬, 파폭, 오페라 등에서 css가 먹히지 않을 때는
.htaccess 에 AddType text/css .css
를 추가하니 css 가 제대로 동작합니다.
단, css 내에 body { ... } 이 것이 또 안 먹히는 듯~~~ 쩝...