gpt4 book ai didi

Sinatra 与 NGINX 与 Unicorn 上的 Javascript 错误

转载 作者:行者123 更新时间:2023-11-28 02:14:20 24 4
gpt4 key购买 nike

我制作了一个在带有 Unicorn Web Server 和 Sinatra 的 NGINX 上运行的网站。我在本地创建了该网站,一切都运行良好。但上传后,主页上的倒计时不起作用。当我使用 chrome(网页版,位于 http://udidreg.com )检查它时,出现以下错误:

未捕获类型错误:对象 [object Object] 没有方法“placeholder”customtime.js:41

未捕获类型错误:对象 [object Object] 没有方法“倒计时”

但是,当我在本地检查时,没有错误,并且它应该被认为是。

任何帮助将不胜感激!

最佳答案

两个 我想到了三件事。

  • 您尚未部署更新的 customtime.js 文件,即使您认为已部署。
  • customtime.js 已被浏览器缓存,并且尚未收集新的。
  • Gemfile 等并未完整描述项目的要求(例如 gem、脚本等),并且由于您的开发环境的设置方式,您不会在开发计算机上收到这些错误。

尽可能小心地对您的环境进行沙箱处理,并确保项目所需的所有内容都在项目内。

一个典型的示例是在具有管理员 Angular 色的帐户的计算机上进行开发,然后部署到在具有有限权限的帐户下运行应用程序的计算机。

Ruby 开发的经典方法是使用 Rubygems 在系统范围内安装 gem,然后通过 Bundler 为项目安装 gem。尽管 Gemfile 中遗漏了一些必需的 gem,但由于所需的 gem 是在系统范围内安装的,因此不会发生错误。部署时发现这些 gem 丢失并且应用程序失败。

要阻止这种情况发生,请使用 Bundler(如果有)使用命令 bundle install --binstubs --pathvendor 对项目的 gem 进行沙箱处理,然后通过 bundle exec 运行所有内容... 或来自 bin 目录,例如bin/rackup config.ru。然后您的项目将从通过 Bundler 安装的 gem 运行。如果缺少任何内容,在开发计算机和生产计算机上都会失败。这显然更好。

为了处理像 javascript 和样式表这样的过时资源,我倾向于 the method used in this helpful blog post 。我非常喜欢它,所以我 fork 了 Sinatra::StaticAssets gem 并重写它以合并它,但我还没有完全完成(虽然它仍然有摧毁行星的能力,但我担心来自一架载人战斗机的攻击),所以如果你有一个 github 帐户并且听起来像它可能对你有用你可以 follow it 。如果您想尝试它,只需将开发分支添加到您的 Gemfile 中,并确保让我知道它是否适合您。

编辑:I finished the fork and made it into its own gem

关于Sinatra 与 NGINX 与 Unicorn 上的 Javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com