【问题标题】:Failed to load resource in Node JS无法在 Node JS 中加载资源
【发布时间】:2017-05-01 13:13:33
【问题描述】:

我正在做一个尝试学习 Node 和 Angular 的教程。我对此完全陌生,我来自 LAMP 堆栈环境,所以这对我来说是一个全新的世界,我感到完全迷失了。

我已安装 Angular JS 并将其包含在我的 HTML 文件中,但我不断收到此错误

http://localhost:3000/node_modules/angular/angular.min.js资源加载失败:服务器响应状态为404(未找到)

http://localhost:3000/app/app.js资源加载失败:服务器响应状态为404(未找到)

编辑:我尝试了一些不同的方法,但它们都指向/server/ 目录。

var appDir = path.dirname(require.main.filename);
var appDir = path.dirname(process.mainModule.filename);

这两个都指向/server/ 目录。

我的文件夹结构如下:

  • /应用
    • app.js
  • /node_modules
  • /服务器

    • server.js
  • index.html

这是server.js

var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');

var app = express();

mongoose.connect('mongodb://localhost:27017/social');

app.use('/app', express.static(__dirname + '/app'));
app.use('/node_modules', express.static(__dirname + '/node_modules'));

app.get('/', function(req, res) {
    res.sendFile("index.html", {root: '../'});
});

app.listen('3000', function() {
    console.log('Listening for localhost 3000');
});

这是app.js

(function() {
    angular.module('Social', []);
}());

这是index.html

<!DOCTYPE html>
<html lang="en" ng-app="Social">
<head>
    <meta charset="UTF-8">
    <title>The title</title>
</head>
<body>
    <p>Testing the test</p>
</body>

<script src="node_modules/angular/angular.min.js"></script>
<script src="app/app.js"></script>
</html>

【问题讨论】:

    标签: angularjs node.js mean-stack node-modules


    【解决方案1】:

    __dirname 是“当前执行脚本所在目录的名称。”这是server.js所在的目录。

    所以当你在做的时候:

    express.static(__dirname + '/app')
    

    我认为它实际上是在寻找不正确的 /server/app

    【讨论】:

    • 我应该改用什么?
    • 你是对的。这是我的一个错误,我将server.js 嵌套在/server/ 目录中,而它本应位于根目录中。把它移到那里,它现在可以工作了。
    猜你喜欢
    • 1970-01-01
    • 2013-07-20
    • 2012-09-26
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多