Why do I have to restart apache to properly refres

2019-03-06 05:29发布

I am trying to learn a bit of Ruby. I've installed Ruby on my Ubuntu machine and I am using apache. Everything works fine except to refresh a view I have to restart apache in the console and then hit ctrl-r, just pressing ctrl-r won't refresh the browser.

Apparently there's some caching going on, but does it have to be that way i.e. is it inherent to Ruby on Rails? I tried googling on this but it seems the only answer is to install some long-winded routine. For developing it seems like quite the tedious way to go.

5条回答
放我归山
2楼-- · 2019-03-06 05:42

Apache's a perfectly good choice for development.

Just install Passenger (mod_rails)...and follow the instructions...

I set it up for each site so that /etc/hosts contains

127.0.0.1 myapp

I use Apache virtual hosts with an entry like so - in /etc/apache2/sites-available/myapp

<VirtualHost *:80>
  ServerName myapp
  DocumentRoot /path/to/myapp/public
  RailsEnv development
  RailsAllowModRewrite off
    <directory "/path/to/myapp/public">
      Order allow,deny
      Allow from all
    </directory>
</VirtualHost>

Enable and restart

sudo a2ensite myapp
sudo /etc/init.d/apache2 restart

That way, there's no running script/server ... it's just always running in dev mode - just point your browser to http://myapp

查看更多
地球回转人心会变
3楼-- · 2019-03-06 05:52

I'm using Apache with Passenger (aka modrails) for development purposes, and it works fine here. Just make sure to use Rails in development mode by setting "RailsEnv development" in your httpd.conf.

查看更多
放荡不羁爱自由
4楼-- · 2019-03-06 05:56

Don't use apache for development mode. Use script/server and install the mongrel gem (sudo gem install mongrel). Mongrel is faster than WEBrick and dumps the development log to the console in which it runs. It makes development decent.

查看更多
爷的心禁止访问
5楼-- · 2019-03-06 05:56

Apache is not a good choice for development in cases like Rails, because you will indeed need to restart the server every time you change code. Rails ships with its own development server that you can start by executing (IIRC) script/server. It's much more suitable for development, as it needn't be restarted after every little change.

查看更多
趁早两清
6楼-- · 2019-03-06 05:58

I use Apache with mod_fcgid. I found that going

$ touch ${MYAPP}/tmp/restart.txt

every time I want the app reloaded works for me.

查看更多
登录 后发表回答