最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Azure上的Express App无法加载静态文件,状态为500

IT培训 admin 5浏览 0评论

Azure上的Express App无法加载静态文件,状态为500

我在Azure上部署Node.js Express应用程序,该应用程序无法加载静态css / js文件。静态文件在我的localhost:3000下工作正常。但是当在Azure上运行时,它会抛出内部服务器错误500。

我的chrome中的错误如下所示:

获取https:///resources/css/style.css net :: ERR_ABORTED 500(内部服务器错误)。此css文件的目录树是/ public / resources / css

我假设我的静态文件路径是正确的,否则我会看到404错误而不是500


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


回答如下:

根据我的经验,我认为错误的部署导致Azure上的Node.js中的内部服务器错误的错误代码500。所以要修复它,请首先检查路径web.configsite/wwwroot文件的内容。还有来自Kudu wiki页面web.config的标准样本Using a custom web.config for Node apps,你可以参考。

如果您的Node应用程序已成功部署,您将看到一个不存在的静态文件的404 Not Found错误代码,而不是您所说的500

但是,本地和Azure之间的变量__dirname有所不同。在本地,__dirname变量的值始终是启动节点过程的完整路径名,例如,如果在__dirname的CMD中运行D:\home,则打印node将返回D:\home。但是在Azure上,如果您尝试在Kudu控制台中运行命令__dirname,您将在.的任何路径中看到node -e "const path = require('path'); console.log(__dirname);"值,如下图所示。

因此,path.join(__dirname, 'public')值始终为public,它与IIS启动的节点的当前路径无关。所以要修复它,请在D:\home\site\wwwroot方法中使用像__dirname这样的绝对路径而不是path.join变量,或者直接在D:\home\site\wwwroot\public方法中使用express.static

Azure上的Express App无法加载静态文件,状态为500

我在Azure上部署Node.js Express应用程序,该应用程序无法加载静态css / js文件。静态文件在我的localhost:3000下工作正常。但是当在Azure上运行时,它会抛出内部服务器错误500。

我的chrome中的错误如下所示:

获取https:///resources/css/style.css net :: ERR_ABORTED 500(内部服务器错误)。此css文件的目录树是/ public / resources / css

我假设我的静态文件路径是正确的,否则我会看到404错误而不是500


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


回答如下:

根据我的经验,我认为错误的部署导致Azure上的Node.js中的内部服务器错误的错误代码500。所以要修复它,请首先检查路径web.configsite/wwwroot文件的内容。还有来自Kudu wiki页面web.config的标准样本Using a custom web.config for Node apps,你可以参考。

如果您的Node应用程序已成功部署,您将看到一个不存在的静态文件的404 Not Found错误代码,而不是您所说的500

但是,本地和Azure之间的变量__dirname有所不同。在本地,__dirname变量的值始终是启动节点过程的完整路径名,例如,如果在__dirname的CMD中运行D:\home,则打印node将返回D:\home。但是在Azure上,如果您尝试在Kudu控制台中运行命令__dirname,您将在.的任何路径中看到node -e "const path = require('path'); console.log(__dirname);"值,如下图所示。

因此,path.join(__dirname, 'public')值始终为public,它与IIS启动的节点的当前路径无关。所以要修复它,请在D:\home\site\wwwroot方法中使用像__dirname这样的绝对路径而不是path.join变量,或者直接在D:\home\site\wwwroot\public方法中使用express.static

发布评论

评论列表 (0)

  1. 暂无评论