在 nodejs + Ionic 应用程序中从 index.html 中的另一个文件夹导入 js 文件时出现 404 错误
404 error while import js file from another folders in index.html in nodejs + Ionic app
我有错误,我花了几个小时试图解决它。
我的文件结构:
-/node_modules
-/www
---bundle.js
---index.html
在index.html我有这样的代码
<script src="node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<script src="bundle.js"></script>
问题是 bundle.js
包含在内很好,但是 ng-cordova.min.js
给出 404
错误
Cannot GET /node_modules/ng-cordova/dist/ng-cordova.min.js
编辑:我也试过了,没有成功
<script src="/node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
<script src="../node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
我不使用 express
或 express.static
。
这里的问题是您尝试从 加载 ng-cordova.min.js 文件index.html 文件夹。
你应该改变:
<script src="node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
为此:
<script src="../node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
您正试图从错误的目录加载文件。
您要么必须使用此路径:
src="../node_modules/
或者这个:
src="/node_modules"
如果上面的目录是你的根目录。
同样令人困惑的是,您在其中注释错误的行并不是错误实际来自的行。你为什么要 link 到文件两次?
//编辑:由于 Romain 比我快一分钟,我认为他应该得到正确答案的奖励 :P 只有当它真正解决了你的问题时 :D
从您的项目结构来看,我敢打赌它是由 Express.js 提供支持的。我还打赌 www
文件夹在 Express 应用程序中被设置为静态文件夹,如下所示:
app.use('/', express.static(path.join(__dirname, www)));
在这种情况下,您的服务器将只提供位于 www
文件夹中的文件。您需要在 www
文件夹中包含任何客户端依赖项:
-/node_modules/
-/www/
--lib/
---ng-cordova/
--bundle.js
--index.html
然后像这样加载它们:
<script src="lib/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
更新
只需将 node_modules 放入 www
文件夹,它应该可以正常工作。
我有错误,我花了几个小时试图解决它。 我的文件结构:
-/node_modules
-/www
---bundle.js
---index.html
在index.html我有这样的代码
<script src="node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<script src="bundle.js"></script>
问题是 bundle.js
包含在内很好,但是 ng-cordova.min.js
给出 404
错误
Cannot GET /node_modules/ng-cordova/dist/ng-cordova.min.js
编辑:我也试过了,没有成功
<script src="/node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
<script src="../node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
我不使用 express
或 express.static
。
这里的问题是您尝试从 加载 ng-cordova.min.js 文件index.html 文件夹。 你应该改变:
<script src="node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
为此:
<script src="../node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
您正试图从错误的目录加载文件。 您要么必须使用此路径:
src="../node_modules/
或者这个:
src="/node_modules"
如果上面的目录是你的根目录。
同样令人困惑的是,您在其中注释错误的行并不是错误实际来自的行。你为什么要 link 到文件两次?
//编辑:由于 Romain 比我快一分钟,我认为他应该得到正确答案的奖励 :P 只有当它真正解决了你的问题时 :D
从您的项目结构来看,我敢打赌它是由 Express.js 提供支持的。我还打赌 www
文件夹在 Express 应用程序中被设置为静态文件夹,如下所示:
app.use('/', express.static(path.join(__dirname, www)));
在这种情况下,您的服务器将只提供位于 www
文件夹中的文件。您需要在 www
文件夹中包含任何客户端依赖项:
-/node_modules/
-/www/
--lib/
---ng-cordova/
--bundle.js
--index.html
然后像这样加载它们:
<script src="lib/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script>
更新
只需将 node_modules 放入 www
文件夹,它应该可以正常工作。