index.html 尝试加载 css 和脚本时获取 503 状态码 [nodejs + express]
Posted
技术标签:
【中文标题】index.html 尝试加载 css 和脚本时获取 503 状态码 [nodejs + express]【英文标题】:Getting 503 status code when index.html tries to load css and scripts [nodejs + express] 【发布时间】:2015-12-14 01:52:57 【问题描述】:我正在使用静态中间件来提供样式表和脚本
app.use(express.static(path.join(__dirname, 'public')));
一切都在本地主机上运行,但是一旦我将应用程序部署到 openshift,我会为页面尝试加载的每个静态文件获得 503 代码。 如果我打开另一个浏览器选项卡并直接通过其中一个文件的 URL,我实际上会得到该文件。
P.S.:我使用 express-react-views 作为视图引擎。
【问题讨论】:
您是否使用浏览器控制台检查并验证了请求 url 是否正确? 是的,请求的 URL 是正确的,如果我在另一个浏览器选项卡中打开它,它会正确地返回 css 文件。但是由于服务器响应为503 (Service Temporarily Unavailable),html 页面无法加载。这很奇怪,这就是为什么我不明白问题出在哪里。 也许你把app.use(app.router);
放在app.use(express.static(path.join(__dirname, 'public')));
之前?或者你的 js 文件在另一个文件夹中? ***.com/questions/19620239/…
我想我找到了问题,但我还不知道如何解决它。我查看了应用程序的日志(部署在 openshift 中),我发现了这个错误:错误:EACCES,权限被拒绝 '/var/lib/openshift/55ed4f447628e1c8a8000070/.babel.json' 正如我所说我正在使用 express-react-视图作为 express 引擎,它使用 babel 将 JSX 编译回 EC5。访问 .babel.json 有问题。不过,我正在研究如何解决这个问题
【参考方案1】:
基本上,我使用 express-react-views 作为视图引擎,它包括使用缓存进行转译优化的 Babel.js。问题是它试图将缓存文件写入需要更高权限的目录中。为了解决我禁用了缓存。
process.env.BABEL_DISABLE_CACHE = 1;
我希望这可以帮助其他遇到同样问题的人。
【讨论】:
以上是关于index.html 尝试加载 css 和脚本时获取 503 状态码 [nodejs + express]的主要内容,如果未能解决你的问题,请参考以下文章