我一直在与Sinatra开发一个小应用程序。本地它工作正常,但当我部署Heroku我的JavaScript路径似乎打破了,我不知道是什么原因造成的。
我的目录设置是我的应用程序根目录中有一个“assets”文件夹,其中包含脚本和样式的单独文件夹。 scripts文件夹有几个子目录。我使用以下方法在Sinatra中设置了我的公共文件夹:
set :public_folder, __DIR__ + '/assets'
我的风格工作正常,我在问题是什么。另外值得注意的是我使用requirejs来加载我的JavaScript。
以下是控制台的输出:
GET http://evening-hamlet-5644.herokuapp.com/scripts/utils/libraries/jquery.js 404 (Not Found) require.min.js:1884
GET http://evening-hamlet-5644.herokuapp.com/scripts/utils/templating/hogan.js 404 (Not Found) require.min.js:1884
2
Uncaught Error: Script error
http://requirejs.org/docs/errors.html#scripterror require.min.js:194
GET http://evening-hamlet-5644.herokuapp.com/scripts/utils/libraries/lodash.js 404 (Not Found) require.min.js:1884
Uncaught Error: Script error
http://requirejs.org/docs/errors.html#scripterror require.min.js:194
GET http://evening-hamlet-5644.herokuapp.com/scripts/utils/libraries/pusher.js 404 (Not Found) require.min.js:1884
Uncaught Error: Script error
http://requirejs.org/docs/errors.html#scripterror
任何帮助或朝正确方向踢的都会很棒。
由于
答案 0 :(得分:3)
您可以运行带有heroku工具带的控制台(类似heroku run bash --app <your app name>
),并验证您是否有JS文件。
问候!
答案 1 :(得分:0)
我不是Sinatra黑客,但我在他们的文档中找不到任何 DIR 。尝试将 DIR 设置为
File.dirname(__FILE__)
,我看到了in their docs
答案 2 :(得分:0)
如果您发布了呈现javascript文件链接的Sinatra代码(例如haml视图等),这将有所帮助。
但是,如果没有代码,我觉得可能是因为您应该使用Sinatra's url
helper。如果不是这样,并且您发布了代码,我将再看看。