【问题标题】:Some JS and CSS assets not loading on Heroku, although loading locally一些 JS 和 CSS 资源没有在 Heroku 上加载,尽管在本地加载
【发布时间】:2012-08-11 09:46:20
【问题描述】:

在本地,我的带有 express 应用程序的 node.js 按预期工作。当我推送到 Heroku 时,该应用程序能够加载一些样式表和 javascript,但不能加载其他的。这是 app.js 中的相关 sn-p:

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

以下是我从我的玉模板加载的资产:

link(href='/stylesheets/style.css', rel='stylesheet')
link(href='/lib/bootstrap/docs/assets/css/bootstrap.css', rel='stylesheet')
link(href='/lib/bootstrap/docs/assets/css/bootstrap-responsive.css', rel='stylesheet')
script(src='/lib/jquery/jquery-1.7.2.js')
script(src='/lib/bootstrap/docs/assets/js/bootstrap-collapse.js')

一切都在本地运行,但是当我推送到 Heroku 时,style.css 文件和 jquery 文件加载正常。引导文件返回 404。

我很困惑为什么这会在本地工作,但会在 Heroku 上部分中断。

【问题讨论】:

  • 你检查你的引导文件了吗?
  • 我正在发现关于 git 子模块的事情。我从 git repo 复制了 bootstrap,然后尝试从 boostrap 中删除 .git 和 .gitconfig ,因为我不关心将其设为官方子模块。我只是想要这些文件。我让它工作并能够提交所有文件的唯一方法是首先删除 .git 和 .gitconfig,然后将文件复制到 repo。
  • 使用 CDN 可能是一个不错的选择。在页面底部有一个用于引导程序bootstrapcdn.com 和用于 jquery jquery.com/download

标签: node.js heroku express


【解决方案1】:
  1. 检查文件是否确实存在
  2. 检查您的静态文件是否由节点或 Web 服务器提供服务,例如nginx。 Web 服务器可能被错误配置为提供静态文件并且没有在 /lib/bootstrap/ 中查找

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 2016-07-22
    • 2013-06-09
    • 1970-01-01
    • 2019-01-09
    • 2015-11-15
    • 2014-11-02
    相关资源
    最近更新 更多