问题:
我在服务器的rails new TestApp
目录中使用/var/www/
创建了一个Rails项目框架。 Rails默认index.html显示并正常工作(即,当我从网站访问网站时,您会看到rails徽标,当您点击“关于您的应用程序的环境”时,您会获得服务器上使用的环境规范的正确列表)运行服务器的同一网络。但是,如果我从与服务器不同的网络上的计算机访问该站点,则会显示该页面但我没有获得rails徽标图像,并且单击“关于您的应用程序的环境”会导致页面上显示以下错误:
Not Found
The requested URL /TestApp/rails/info/properties was not found on this server
该网址不应该找到,因为它不存在。但是,TestApp/public/rails/info/properties
确实存在。
配置:
该网站位于/var/www/TestApp
,我从子URI访问它。我在/var/www/
中创建了一个名为rails
的符号链接,如下所示:rails -> /var/www/TestApp/public
,以便可以从www.mydomain.com/rails访问该项目。我的Apache配置如下,请注意,为简洁起见,我在<VirtualHost>
标记中省略,更改或缩短了某些部分:
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/ex$
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.mydomain.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
.
.
.
#Rails Configuration
RailsBaseURI /rails
RailsEnv development
PassengerUserSwitching off
PassengerDefaultUser www-data
<Directory /TestApp/public>
Options FollowSymLinks -MultiViews
AllowOverride All
Allow from all
</Directory>
#End Rails Configuration
.
.
.
</VirtualHost>
有两件事:appropriate folders are owned到www-data
,具有Passenger文档定义的相应权限。在设置symlink and RailsBaseURI设置时,我遵循了乘客文档。
我想我在这里不知所措,因为当从服务器所在的同一网络访问网站时,一切似乎都有效。我不确定为什么从其他网络访问网站时出现问题,但我觉得某些资源/资产(如rails徽标)的路径无法正常解析。也许我的符号链接配置不当,或者我的Apache配置有问题?
任何帮助将不胜感激。
答案 0 :(得分:0)
一个有点破坏的默认Rails页面的问题是not totally abnormal,事实证明。
我删除了默认的Rails页面,并替换为包含一些Rails代码的其他页面,所有内容都像魅力一样。