【问题标题】:browser load error only with certain file path - internal server error 500仅具有特定文件路径的浏览器加载错误 - 内部服务器错误 500
【发布时间】:2014-11-22 19:57:26
【问题描述】:

我只收到一个 js 文件的内部服务器错误 500,当我更改文件的路径时它工作正常。这是我的索引文件中的 sn-p:


<script type="text/javascript" src="/users/users.client.module.js"></script>
<script type="text/javascript" src="/users/services/authentication.client.service.js"></script>

'users.client.module.js' 未加载并给出“内部服务器错误”,chrome 中的网络选项卡将其显示为“text/html”类型。另一个文件 'authentication.client.service.js' 加载正常。还有其他 js 文件,它们都可以正常加载。这是服务器错误:

GET /users/users.client.module.js 500 6.716 毫秒 - 1529

这是网络标签显示的内容:

Remote Address:127.0.0.1:3000
Request URL:`http://`127.0.0.1:3000`/users/users.client.module.js`
Request Method:GET
Status Code:500 Internal Server Error
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:localhost:3000
Referer:http://localhost:3000/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko)       Chrome/38.0.2125.122 Safari/537.36
Response Headersview source
Connection:keep-alive
Content-Length:1529
Content-Type:text/html; charset=utf-8
Date:Sat, 22 Nov 2014 20:02:07 GMT
X-Content-Type-Options:nosniff
X-Powered-By:Express
ConsoleSearchEmulationRendering

但是,当我将文件“users.client.module.js”放在子文件夹“服务”中时,它可以正常加载。示例如下:

<script type="text/javascript" src="/users/services/users.client.module.js"></script>
<script type="text/javascript" src="/users/services/authentication.client.service.js"></script>

以上工作正常。我对为什么浏览器在第一种情况下不加载文件感到困惑。我在 chrome 和 safari 中都试过了。任何帮助,将不胜感激。

这是 express.js 文件中的代码,显示静态资源的服务器端路由

module.exports = function() { var app = express();

app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(session({
    saveUninitialized: true,
    resave: true,
    secret: config.sessionSecret
}));

// setting views/views engine
app.set('views', './app/views');
app.set('view engine', 'ejs');

app.use(flash());
app.use(passport.initialize());
app.use(passport.session());

// routes
require('../app/routes/index.server.routes.js')(app);
require('../app/routes/users.server.routes.js')(app);

// serving static file
app.use(express.static('./public'));

return app;

};

【问题讨论】:

  • 你不认为这是服务器端的问题,但你没有显示任何与服务器配置相关的内容吗?
  • 好的,从您显示的日志中我们知道服务器由 NodeJS Express 框架提供支持。您能否让我们有机会通过显示服务器端路由代码来实际回答您的问题?
  • 如果有帮助的话。有趣的是,当我将用户文件夹的名称更改为其他名称时,例如人员,文件加载正常。示例:src="/staff/users.client.module.js"

标签: javascript internal-server-error


【解决方案1】:

这种情况正在发生,因为我敢打赌您可能在 users.server.routes.js 中有一个“/users/someparameter”路由。因此,当您请求该 js 文件时,它会尝试通过该路线。可能“某些参数”是一个 ID,因此在请求 users.client.module.js 时,它无法解析参数,因为文件名不是 id。

您需要更新路由或重命名“用户”文件夹。

【讨论】:

  • 是的,就是这样。感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 2018-03-26
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 2019-07-19
  • 1970-01-01
  • 2019-01-17
相关资源
最近更新 更多