У меня есть эта программа, которую мне удалось загрузить в heroku без ошибок. Но когда я открываю его в браузере, то, если я сохраняю строку, использующую Regexp, я получаю «внутреннюю ошибку сервера». Если я это прокомментирую, это нормально.
Я смотрел на одноименные вопросы о том, как Heroku дает «внутреннюю ошибку сервера», но они не связаны с Regexp, и они не дали мне никаких идей относительно того, что мне нужно сделать, чтобы это работало. Например, Внутренняя ошибка сервера развертывания Heroku человек использовал python, и пакет, который он установил, был несовместим, что не имеет отношения к моей проблеме. Этот Heroku + Django Внутренняя ошибка сервера парень должен был импортировать нечто, называемое djcelery. Ну, может быть, мне нужно куда-то импортировать, но я не знаю что, но это не было бы djcelery, потому что я не использую django.
C:\rubytest\regexinheroku1>dir /b
aaa.rb
config.ru
Gemfile
Gemfile.lock
C:\rubytest\regexinheroku1>
вот ааа.рб
C:\rubytest\regexinheroku1>type aaa.rb
require 'sinatra'
get '/' do
z=Regexp.new('.').match?('qwerty')
"aaaa"
end
Это успешно
C:\rubytest\regexinheroku1>git push heroku master
.... deployed to Heroku
Вот проблема, хотя
Если я перейду к URL-адресу, появится сообщение «Внутренняя ошибка сервера»
![enter image description here](https://i.stack.imgur.com/InYj2.png)
Однако, если я изменю aaa.rb, закомментировав строку регулярного выражения
C:\rubytest\regexinheroku1>type aaa.rb
require 'sinatra'
get '/' do
# z=Regexp.new('.').match?('qwerty')
"aaaa"
end
Тогда все работает нормально, появляется страница и говорит «аааа», как и ожидалось.
Если вы хотите воспроизвести это, а вышеперечисленного недостаточно, вот все шаги
So you see the files
C:\rubytest\regexinheroku2>dir /b
aaa.rb
config.ru
Gemfile
The contents of each file
C:\rubytest\regexinheroku2>type aaa.rb
require 'sinatra'
get '/' do
z=Regexp.new('.').match?('qwerty') # if I uncomment this, I get internal server error
"aaaa"
end
C:\rubytest\regexinheroku2>type config.ru
require './aaa'
run Sinatra::Application
C:\rubytest\regexinheroku2>
C:\rubytest\regexinheroku2>type Gemfile
source "http://rubygems.org/"
gem 'sinatra'
gem "haml"
And see the commands I run to get the application successfully deployed
C:\rubytest\regexinheroku2>bundle install
...
C:\rubytest\regexinheroku2>git init
Initialized empty Git repository in C:/rubytest/regexinheroku2/.git/
C:\rubytest\regexinheroku2>git add -A
warning: LF will be replaced by CRLF in Gemfile.lock.
The file will have its original line endings in your working directory.
C:\rubytest\regexinheroku2>git commit -m "sddsfsdfsd"
[master (root-commit) 12cf382] sddsfsdfsd
warning: LF will be replaced by CRLF in Gemfile.lock.
The file will have its original line endings in your working directory.
4 files changed, 39 insertions(+)
create mode 100644 Gemfile
create mode 100644 Gemfile.lock
create mode 100644 aaa.rb
create mode 100644 config.ru
C:\rubytest\regexinheroku2>heroku create
path1 gitmisc done
Creating app... done, abc
https://abc.herokuapp.com/ | ....
C:\rubytest\regexinheroku2>git push heroku master
....
remote: Verifying deploy... done.
To https://git.heroku.com/abc.git
* [new branch] master -> master
C:\rubytest\regexinheroku2>