这是一个非常基础的问题,但我希望在这里得到一些澄清。
假设我有一个静态网站,其中包含一些 html、一些 css 和基本 javascript。没有 Web 应用来支持它。在本地测试网站时,为什么我需要运行 Web 服务器来向浏览器提供内容?
是不是因为网页中使用的 URL 中的相对路径是相对于服务器从中检索内容的文件夹的,因此中央 HTML 页面中包含的各种文件无法在文件系统上找到?
答案1
没有服务器也可以浏览静态网站吗?
是的。
在本地测试网站时,为什么需要运行 Web 服务器来向浏览器提供内容?
你不知道。
是不是因为网页中使用的 URL 中的相对路径是相对于服务器从中检索内容的文件夹的,因此中央 HTML 页面中包含的各种文件无法在文件系统上找到?
不。
答案2
静态网站无需服务器,只需在网络浏览器中打开即可在本地查看,如果您愿意,还可以通过这种方式访问整个大型网站。但是这样做存在局限性和缺点,这就是人们和系统使用本地服务器来访问静态网站的原因。
您可能会问的一个原因是,使用许多流行的静态网站生成器(如 Jekyll)需要您告诉系统--serve
(或类似系统),为静态网站创建本地服务器。但如果它是静态的,为什么需要服务器?
原因如下:
- 只有相对链接是安全的(
/
因为到主页的链接已损坏,引用也是如此/css/something.css
,因为它/
是您的计算机的根目录,而不是网站); - 相关地,目录级链接失败(
blog/
显示该目录下的文件,而不是查找blog/index.html
或类似内容); - 并且浏览器对本地文件以及本地文件与托管文件的处理方式不同(Chrome 限制 AJAX 调用,IE 使用与其他所有协议不同的协议等)。
所以,不,你不需要它,但如果你想要那些东西,你确实需要它。