javascript 在Google Chrome上加载HTML文件时,CSS样式不适用

2w2cym1i  于 2022-12-10  发布在  Java
关注(0)|答案(1)|浏览(155)

我建立了一个Edge Ledger网站,用VS代码做了HTML和CSS样式。当我用live server运行它时,它工作正常,我做的CSS样式已经实现,但如果我只是转到根文件夹,打开index.html文件,而不使用VS代码运行它,它只显示HTML元素,没有样式。有人能帮忙吗?
我试着在没有VS代码的情况下打开索引文件,它只加载了没有CSS的HTML文件。

当我在VS代码上使用live server运行这个程序时,我所做的CSS样式被应用到index.html页面

有什么问题吗?

km0tfn4u

km0tfn4u1#

说明

直接打开HTML文件的问题是,现在你的电脑硬盘是服务器,浏览器会要求你的电脑在/css目录下提供CSS文件,/表示整个文件系统的根目录。
对于您的计算机来说,这有几个问题。(想想MacOS或Linux发行版,比如Ubuntu),但是由于您使用的是Windows,这种类型的目录或路径不会解析为任何内容。就像在Windows中将它们放在C:/下一样。
这就是为什么当在适当的服务器上提供HTML文件时,/路径会被正确解析的原因,因为/表示Web服务器目录的根,而不是文件系统的根。

解决方案A -本地文件服务器

如果你想保持代码不变,并且你已经在本地安装了Python或Node.js,你可以使用它们中的任何一个来启动一个轻量级HTTP服务器,作为一个静态文件服务器。
第一个
现在访问http://localhost:8080(或您的终端告诉您的任何端口),应该提供您的HTML文件 * 并 * 正确解析CSS资产路径。
您可以在此处找到适用于不同语言的其他静态服务器的大量列表:https://gist.github.com/willurd/5720255

解决方案B -相对文件路径

另一个解决方案是从资产路径中删除/前缀,使其成为index.html文件的相对路径。注意,这可能会在将来导致其他意外情况,例如,如果您的index.html文件也用于/about页面,则CSS资产路径现在将解析为/about/css而不是/css(因为css/...路径现在是相对于当前路径的,并且将被附加到当前路径上)。这并不是最好的练习。

相关问题