Mat*_*eau 13 ruby-on-rails url-routing webrick ruby-on-rails-3
我知道我将部署到我的应用程序运行的环境中,其基本URL如下所示:
http://someserver/mydepartment/myapp
Run Code Online (Sandbox Code Playgroud)
我的开发环境设置为使用默认的Rails配置,如下所示:
http://localhost:3000/myapp
Run Code Online (Sandbox Code Playgroud)
我想在我的开发环境中对此部署路径进行建模.也就是说,我想开发一个基本URL,如下所示:
http://localhost:3000/mydepartment/myapp
Run Code Online (Sandbox Code Playgroud)
这样,我可以将所有网址都设置为"/",并且它们可以在两种环境中工作.
如何更改它以便我的应用程序将在我的开发环境中生活在此路径中?
我找到的解决方案,但不适合我:
scope
in routes.rb
似乎不适用于静态内容public
.relative_url_root
和类似的建议不适用于Rails 3.Dav*_*low 15
您可以尝试将rails app rack config映射到不同的base_uri.您需要做的就是将现有的'run'命令包装在map块中
尝试在你的rails'config.ru '文件中执行此操作:
map '/mydepartment' do
run Myapp::Application
end
Run Code Online (Sandbox Code Playgroud)
现在,当你'运行服务器'时,应用程序应该在localhost:3000/mydepartment.不确定这是否会给你想要的结果,但值得一试.
以下是如何将Rails 3.1应用程序部署到Apache中的子目录,替换config.action_controller.relative_url_root
不再存在的子目录.
在config/routes.rb
:
scope 'my_subdir' do
# all resources and routes go here
end
Run Code Online (Sandbox Code Playgroud)
在Apache配置文件中:
Alias /my_subdir /var/www/my_subdir/public
<Location /my_subdir>
SetEnv RAILS_RELATIVE_URL_ROOT "/my_subdir"
PassengerAppRoot /var/www/my_subdir
</Location>
Run Code Online (Sandbox Code Playgroud)
它应该工作,包括自动将所有资产指向/my_subdir
.
归档时间: |
|
查看次数: |
13883 次 |
最近记录: |