2015-10-12 32 views
0

我有一個ajax調用發佈到/php/rsvp.php。出於某種原因,當這個調用通過web服務器時,index.html被追加到路徑上。該應用程序使用puma託管在heroku上。與堆棧跟蹤日誌低於:Heroku + jekyll部署將index.html附加到AJAX後

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' 

我一直在尋找通過美洲獅和機架傑基爾功能來找到在哪裏追加正在發生的事情,但沒有條件正在感。我還沒有在這個問題上找到任何其他的帖子,這讓我覺得有一些簡單的我正在監督。正在作出AJAX調用非常簡單:

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

有一些配置我缺少防止這種情況?我的Gemfile,_config.yml,config.ru等與here相同。

回答

0

所以我們也遇到了這個問題,只是弄明白了。問題是,rack-jekyll gem有一個錯誤,它認爲沒有MIME類型的文件是目錄。見問題:https://github.com/adaoraul/rack-jekyll/issues/38

該bug修復已經完成,它似乎會與0.4.3發佈,但在此期間,我們設法解決問題,通過添加以下行到我們的config.ru文件,這爲.php擴展名添加一個MIME類型: Rack::Mime::MIME_TYPES.merge!({".php" => "application/octet-stream"})

+0

工作,謝謝!很好找到那個bug ... – mattga