This is more of an "alert" since I found out the problem, but I wanted to post and let people know if they ran across this.
While using Firebug I noticed that my pages kept loading twice and I had a message in the console that said:
The character encoding declaration of the HTML document
was not found when prescanning the first 1024 bytes of
the file. When viewed in a differently-configured browser,
this page will reload automatically. The encoding
declaration needs to be moved to be within the first
1024 bytes of the file.
The issue is that Yii, because of the way it publishes JavaScript asset files, was putting in so many lines that the Meta line for my content type was pushed too far down. The HTML View Source for my pages showed:
<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
<head>
<link rel="stylesheet" type="text/css" href="/assets/16572020/css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/assets/16572020/css/bootstrap-yii.css" />
<link rel="stylesheet" type="text/css" href="/assets/e984feb5/pager.css" />
<link rel="stylesheet" type="text/css" href="/assets/a94942fc/jui/css/base/jquery-ui.css" />
<script type="text/javascript" src="/assets/a94942fc/jquery.js"></script>
<script type="text/javascript" src="/assets/a94942fc/jquery.yii.js"></script>
<script type="text/javascript" src="/assets/a94942fc/jquery.yiiactiveform.js"></script>
<script type="text/javascript" src="/assets/16572020/js/bootstrap.js"></script>
<script type="text/javascript" src="/assets/824053d9/custom.js"></script>
<title>My Test Web Site</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="/css/base.css">
<link rel="stylesheet" type="text/css" href="/css/skeleton.css">
The top lines are from getskeleton.com but mostly they’re all the Yii asset publishing. My original main.php file, however, just was:
<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" lang="<?= _xls_get_conf('LANG_CODE', 'en') ?>"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="<?= _xls_get_conf('LANG_CODE', 'en') ?>"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="<?= _xls_get_conf('LANG_CODE', 'en') ?>"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="<?= _xls_get_conf('LANG_CODE', 'en') ?>"> <!--<![endif]-->
<head>
<title><?php echo CHtml::encode($this->pageTitle); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/base.css">
What I discovered was that Yii is hunting for the <title> header command and using that as an anchor for all the inserted asset JS lines. Because my title was above my own meta line, that’s why it pushed everything down. By moving title down in main.php below ContentType, it solved the issue.
This also might be an issue with CSS files in general if you’re loading conflicting elements where order matters (say to override an element). Basically just remember wherever you put your title is where Yii will put all its autopublished lines.