Heroku + jekyll部署将index.html附加到AJAX帖子

时间:2015-10-12 03:51:08

标签: php ajax heroku jekyll rack

我发了一个ajax调用,发布到/php/rsvp.php。出于某种原因,当此调用通过Web服务器时,index.html将附加到路径上。该应用程序使用puma托管在heroku上。堆栈跟踪的日志如下:

2015-10-12T01:48:57.898961+00:00 heroku[router]: at=info method=POST path="/php/rsvp.php" host= request_id= fwd="" dyno=web.1 connect=1ms service=9ms status=500 bytes=168
2015-10-12T01:48:57.901579+00:00 app[web.1]: 2015-10-12 01:48:57 +0000: Rack app error: #<Errno::ENOTDIR: Not a directory @ rb_sysopen - /app/_site/php/rsvp.php/index.html>
2015-10-12T01:48:57.901635+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/rack-jekyll-0.4.1/lib/rack/jekyll/helpers.rb:14:in `initialize'
2015-10-12T01:48:57.901639+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/rack-jekyll-0.4.1/lib/rack/jekyll/helpers.rb:14:in `open'
2015-10-12T01:48:57.901640+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/rack-jekyll-0.4.1/lib/rack/jekyll/helpers.rb:14:in `file_info'
2015-10-12T01:48:57.901642+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/rack-jekyll-0.4.1/lib/rack/jekyll.rb:75:in `call'
2015-10-12T01:48:57.901644+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/puma-2.9.1/lib/puma/configuration.rb:71:in `call'
2015-10-12T01:48:57.901645+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/puma-2.9.1/lib/puma/server.rb:490:in `handle_request'
2015-10-12T01:48:57.901647+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/puma-2.9.1/lib/puma/server.rb:361:in `process_client'
2015-10-12T01:48:57.901649+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/puma-2.9.1/lib/puma/server.rb:254:in `block in run'
2015-10-12T01:48:57.901652+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/puma-2.9.1/lib/puma/thread_pool.rb:92:in `call'
2015-10-12T01:48:57.901692+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/puma-2.9.1/lib/puma/thread_pool.rb:92:in `block in spawn_thread'

我一直在查看puma和rack-jekyll函数来查找追加的位置,但没有一个条件有意义。我还没有找到关于这个问题的任何其他帖子,这让我觉得我有一些简单的监督。正在进行的ajax调用非常简单:

req = $.post( '/rsvp.php', $form.serialize(), function(data, status){});

我是否缺少一些可以防止这种情况的配置?我的Gemfile,_config.yml,config.ru等与here相同。

1 个答案:

答案 0 :(得分:0)

所以我们也遇到了这个问题,而且只是弄明白了。问题是canvMinions.Children.Add(moImgMinion); gem有一个错误,它假定没有mime类型的文件是目录。请参阅问题:https://github.com/adaoraul/rack-jekyll/issues/38

错误修复已经完成,似乎它会以0.4.3发布,但与此同时我们设法通过在config.ru文件中添加以下行来解决问题,该文件添加了一个mime .php扩展名的类型: rack-jekyll