好吧在外面包含css和js文件?

时间:2010-02-01 01:12:00

标签: php javascript html css

我想知道我是否可以将js和css文件嵌入到html文档范围之上:

<script type="text/javascript" src="../../media/js/jquery.js"></script>
<script type="text/javascript" src="../../media/js/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="../../media/css/cupertino/jquery-ui.css" />

<html>
   <head>
   </head>
   <body>
   <body>
</html>

这是因为我想将它们放在相同的php文件中,其中包含所有文件(php,js和css)。我试过这个似乎工作。 html文件的输出将像上面的代码一样显示,并在html标记上方包含行。

这有什么隐藏的缺点吗​​?

6 个答案:

答案 0 :(得分:10)

即使它有效,也不应该这样做。这种类型的东西是草率的,因此不能保证明天或未来的浏览器。如果你现在感觉不到这种方法的痛苦,你最终会。无论如何你都没有理由这样做。

答案 1 :(得分:6)

这不是有效的HTML。放置javascript的最佳位置是在正文关闭之前(除非有需要加载这些脚本的内联脚本)。这可以防止在页面加载时阻塞。

答案 2 :(得分:5)

无效(X)HTML。

答案 3 :(得分:2)

这适用于大多数浏览器,但这并不是说它不是错误。这是错误

它不是有效的HTML,并且会让每个遇到代码的人感到困惑,虽然我不知道哪些浏览器可能无法克服这种风格的固有错误,但我做了没有承诺它会起作用。从某种意义上说,它应该,但在另一种情况下,它绝对不应该。

答案 4 :(得分:1)

也许输出缓冲在这种情况下会起作用?缓冲“includes”文件的输出,然后在<html>声明之后获取缓冲区的内容以便稍后输出。大致像这样:

在您的includes.php文件中:

<?php 
ob_start();
// here is where you output your css and js declarations
$includes = ob_get_clean();
?>

这是您的主页:

<html>
 <head>
  <title>Hello</title>
  <?php echo $includes ?>
 </head>
 <body>
 ...

答案 5 :(得分:0)

我知道现在已经很老了,但我想补充一点,谷歌建议在某些情况下这样做。

看看这个:https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery#example

有关谷歌为何提倡不正当的HTML编码的想法?