Php 在所有页面中包含导航栏的最佳方式是什么?
我正在考虑一种方法,将导航栏添加到我的所有网页中,当我更新文件时,所有网页也应该更新。Php 在所有页面中包含导航栏的最佳方式是什么?,php,javascript,navigation,ssi,Php,Javascript,Navigation,Ssi,我正在考虑一种方法,将导航栏添加到我的所有网页中,当我更新文件时,所有网页也应该更新。 我在谷歌上研究了一段时间,我发现: PHP SSI (我甚至不知道这是什么) JavaScript 但是哪一个是最好的呢?有人能解释一下什么是SSI吗?SSI(服务器端包括)已经过时了。我建议不要使用它们。JavaScript可以工作,但您的浏览器必须下载额外的文件才能构建页面。另外,禁用JavaScript的用户将无法浏览您的站点。使用JavaScript构建页面是毫无意义的,所以除非您需要特
我在谷歌上研究了一段时间,我发现:
PHP 代码>
SSI 代码>(我甚至不知道这是什么)
JavaScript 代码>
include_once('nav.php')代码>SSI(包括服务器端)已过时。我建议不要使用它们。JavaScript可以工作,但您的浏览器必须下载额外的文件才能构建页面。另外,禁用JavaScript的用户将无法浏览您的站点。使用JavaScript构建页面是毫无意义的,所以除非您需要特殊效果,否则不要使用它
PHP是最好的选择。您只需在页面顶部包含导航脚本,如include_once('nav.php')
SSI代表服务器端包含,这是一个概念,意味着您的文件都将包含相同的文件(例如导航栏),因此当您对该文件进行任何更改时,它将反映在您的所有页面中
PHP和javascript是两种不同的东西,PHP是服务器端语言,javascript是客户端语言
如果您只需要一个导航栏,PHP就足够了。但是,如果您想添加任何客户端功能,如在节下的弹出菜单等,您也必须使用javascript。SSI代表服务器端包含,这是一个概念,意味着您的文件都将包含相同的文件(例如导航栏),因此,当您对该文件进行任何更改时,它将反映在您的所有页面中
PHP和javascript是两种不同的东西,PHP是服务器端语言,javascript是客户端语言
如果您只需要一个导航栏,PHP就足够了。但是,如果你想添加任何客户端功能,比如在节下的弹出菜单之类的东西,你也必须使用javascript。但是哪一个是最好的
,这取决于你已经在网站上使用了什么
如果它是用php编写的,那么最好使用php进行包含。通过简单的include('file_with_nav_bars_code')
在模板或代码的正确位置,您可以插入静态html代码或上述文件生成的代码
SSI(服务器端包含)适用于“静态”页面。这就像一个简单的脚本,可以由服务器在一些设置后完成。如果您检查Apache服务器错误页面的模板,您将在那里看到SSI指令,其中包括页脚、页眉、输出一些基本信息,如时间、请求的URL等。包含一些代码看起来像
,同样,您甚至可以包含一些CGI脚本
,在这里和这里阅读更多内容
javascript也适用于静态页面。您必须加载javascript代码,该代码将“生成”所需的html代码,并将其输出到页面上所需的位置。它有一个严重的负面影响-搜索引擎将无法跟踪js生成的链接,因为它们不会运行它(因为js的访问者关闭了,但我不知道这种情况。即使Opera mini也能够呈现简单js输出的结果)。简单的方法是在想要导航栏的位置包含js脚本:
并且在nav_bar.js
中(作为一个非常简单的示例),您将看到这样的内容:document.write('这里有一些带有转义新行和引号的工具栏html代码')代码>
ps:在多年的经验中,我尝试了所有这些:)我在早期的静态页面中使用了js和SSI,现在我只使用php和其他服务器端脚本语言。您仍然可以在php生成的页面中使用javascript,但是对于SSI,您必须告诉Web服务器再次传递php的输出,以查找SSI指令,而不是将其返回到浏览器。但哪一个是最好的
,这取决于您在网站上已经使用的内容
如果它是用php编写的,那么最好使用php进行包含。通过简单的include('file_with_nav_bars_code')
在模板或代码的正确位置,您可以插入静态html代码或上述文件生成的代码
SSI(服务器端包含)适用于“静态”页面。这就像一个简单的脚本,可以由服务器在一些设置后完成。如果您检查Apache服务器错误页面的模板,您将在那里看到SSI指令,其中包括页脚、页眉、输出一些基本信息,如时间、请求的URL等。包含一些代码看起来像
,同样,您甚至可以包含一些CGI脚本
,在这里和这里阅读更多内容
javascript也适用于静态页面。您必须加载javascript代码,该代码将“生成”所需的html代码,并将其输出到页面上所需的位置。这有一个严重的负面影响-搜索引擎将无法跟踪js生成的链接,因为他们不会运行它(因为js的访问者关闭了,但我不知道这种情况。即使Opera mini也是如此)
<!--#include file="nav.html" -->
<!--#if expr='v("DOCUMENT_NAME")=~/about.html/'-->
<a class="active" href="#">
<!--#else -->
<a href="about.html">
<!--#endif -->
About</a>
<!--#if expr="%{DOCUMENT_URI} =~ /product/"-->
Product path
<!--#else-->
Some other path
<!--#endif-->
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes