2017-02-12 70 views
0

我尝试测试我Angular2服务是这样的:不能访问本地文件

spec.ts文件 'C:/ MyAngularApp/src目录/应用/通用'

let testFile = "./test.json"; // full path: C:\MyAngularApp\src\app\common\test.json 

http.get(testFile).map(d => d.json()).subscribe(()=>log("it works")) 

但我不能使它工作 - 我:

失败:有状态响应:404未找到的网址:http://localhost:9876/test.json

我试图把这个文件在其他位置:

  • “C:\ MyAngularApp”
  • “C:\ MyAngularApp \ SRC”
  • “C:\ MyAngularApp的\ src \应用“
  • ”C:\ MyAngularApp的\ src \资产“

但没有结果。

我认为这是一件与路径..

这就是为什么我要通过http.get加载本地文件的原因: 我想要做一些额外的层为我的我的一些服务。我将其称为“HttpResourse”,它包含如下方法:Create(),Get(),Update(),Delete()和SetResourceUrl(resourceUrl:string)。最后一个是我需要通过路径加载文件的原因。

+0

你为什么试图通过HTTP访问项目中的文件?为什么不直接导入? – jonrsharpe

+0

我想测试MyHttpService,所以我需要“下载”文件。 – tBlabs

+0

如果你想测试你的服务,使用'MockBackend'作为文档显示,那么你甚至不需要有互联网连接来测试。 – jonrsharpe

回答

2

我找到了答案!

当我设置路径“assets/test.json”一切正常。它不能是“pathToSrc/assets/test.json”或类似的东西。它必须是“资产”或“./assets”。

但是为什么?为什么这个目录(“资产”)如此特别?

+0

默认情况下,相对路径与root不相关。如果你想'pathToSrc/assets/test。json'工作,这是相对于根,您可以添加一个标记到您的HTML页面,在

pixelbits

+0

我已经有这个标记。 – tBlabs