在服务器 JS 上加载部分失败

Posted

技术标签:

【中文标题】在服务器 JS 上加载部分失败【英文标题】:Loading partials fails on the server JS 【发布时间】:2017-04-04 23:37:15 【问题描述】:

我正在尝试使用 MEAN 堆栈创建一个简单的单页应用程序。 到目前为止,我在本地主机上工作,一切正常。

遗憾的是,在将代码上传到服务器后,每当我的应用程序尝试从我的部分文件夹(html 模板)下载任何内容时,我都会收到状态代码 500(内部服务器错误)。

这不是 CORS 问题(同一个域),只是为了确保我还安装了 CORS 插件。

示例路线:

    $routeProvider.when('/admin/login', 
        templateUrl: 'partials/admin/login.html',
        controller: 'AdminLoginCtrl'
    );

我也有路径设置:

router.get('*', function(request, response) 
    response.sendfile('./public/index.html');
);

我已经搜索了很多页面,但找不到解决方案。感谢您的帮助。

【问题讨论】:

你能发布确切的错误信息吗? 【参考方案1】:

你知道你为每个请求发送 index.html 吗?

改变这个:

router.get('*', function(request, response) 
    response.sendfile('./public/index.html');
);

到这里:

app.use(express.static(path.join(__dirname, 'public')));

或者这个:

app.use('/path', express.static(path.join(__dirname, 'public')));

如果您在 / 以外的某个路径下提供静态文件。

确保将其添加到文件的开头:

var path = require('path');

还要确保您确实将public 目录放在正确的位置,并且它包含index.html 和其他必需的文件。

当然,您可能还有其他问题,因为您显然没有包含整个代码。

如果您想使用 Express 提供静态文件,请参阅我在 GitHub 上的示例:

https://github.com/rsp/node-express-static-example

这是一个工作示例,您可以下载、将自己的静态内容放在正确的目录中并根据自己的需要进行自定义。

更多使用和不使用 Express 的示例:

https://github.com/rsp/node-static-http-servers

其他相关答案:

How to serve an image using nodejs Failed to load resource from same directory when redirecting javascript onload js call not working with node Sending whole folder content to client with express Node JS not serving the static image

【讨论】:

非常感谢您的帮助。你的项目帮了我很多:)

以上是关于在服务器 JS 上加载部分失败的主要内容,如果未能解决你的问题,请参考以下文章

加载资源失败:服务器响应状态为 403(禁止),包括 css 文件和 js 库

构建服务器加载自定义代码分析规则集失败

Nginx 加载 JS 文件失败但加载 CSS

Vue.js 3 - “加载模块脚本失败:服务器以非 JavaScript MIME 类型“text/html”响应

<scripts> 节点 js 加载失败

加载资源失败:服务器响应状态为 401(未授权)/App/AngularJS/angular.min.js