NPM包'http-server'似乎是404任意资产路径

时间:2017-04-07 18:25:30

标签: node.js npm httpserver

我有一个简单的文件夹,我想作为一堆静态资产提供给localhost。文件结构如下所示:

  • 构建
    • 资产
    • 数据
    • 图像
    • 的index.html

我使用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引用此路径。

0 个答案:

没有答案