我有一个简单的文件夹,我想作为一堆静态资产提供给localhost。文件结构如下所示:
我使用npm install http-server -g
通过NPM安装了http-server,我使用以下命令将这个充满静态文件的目录(build)提供给localhost:
cd ~/MyProject/build
http-server .
结果是我可以在浏览器中访问localhost:8080
并按预期获得index.html加载。但是,它加载不完整,并且在控制台中我看到index.html 中引用的JS文件(在/ assets路径中)正在加载并正常运行,但http-server
正在返回404对于/ data路径中的相对路径资产。换句话说,以下浏览器控制台错误:
GET http://localhost:8080/data/myFile.json 404 (Not Found)
尝试通过直接路径访问此资产也会失败,例如输入我的浏览器地址栏:
http://localhost:8080/data/myFile.json
但是,如果我将此资产移动到/ images路径(就像实验一样),那么它可以工作。换句话说,浏览器地址栏中的以下内容确实返回了所需的文件:
http://localhost:8080/images/myFile.json
还通过在此项目中安装ExpressJS进行测试,并创建一个简单的NodeJS脚本,该脚本配置为服务“build”目录(相同的物理目录,没有文件结构或命名更改)。它完美地没有路径或文件名更改,所以我知道文件结构和名称是好的。只有http-server
才有些东西可疑。与此同时,我只是使用ExpressJS作为解决方案,这很好,但现在我很好奇http-server中的问题是什么,因为如果我可以使它工作,它是一个非常方便的未来解决方案!
为什么http-server
可以找到index.html和/ assets路径,而不是/ data路径? / data路径是非法的还是我做错了什么?我可以在http-server
中更改配置以使其可行吗?我无法重命名/ data路径,因为不可更改的缩小供应商JS引用此路径。