rails app显示文件而不是显示应用程序

时间:2014-07-10 01:36:03

标签: ruby-on-rails ruby apache .htaccess deployment

我使用bluehost共享服务器

它应该显示在根域domainname.com

rails文件位于:

public_html/app_name/current

我的public_html / .htaccess有:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domainname.com$
RewriteCond %{REQUEST_URI} !^/app_name/current/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /app_name/current/public/$1
RewriteCond %{HTTP_HOST} ^(www.)?domainname.com$
RewriteRule ^(/)?$ /app_name/current/public/ [L]

我的public_html / app_name / current / public / .htaccess有:

Allow from all
Options -MultiViews
PassengerResolveSymlinksInDocumentRoot on
RailsEnv production
RackBaseURI /public_html/app_name/current       
SetEnv GEM_HOME /home1/username/ruby/gems

1 个答案:

答案 0 :(得分:1)

因为我解决了自己,我会发布答案,这可能对某人有所帮助 当我添加到我的public_html / app_name / current / public / .htaccess

时,事情开始变得清晰
PassengerAppRoot /home1/user/public_html/app_name/current

然后我开始看到一个空白页面并开始在rails日志中显示:

ActionController::RoutingError (No route matches [GET] "/app_name/current/public"):

然后我意识到,好的Rails正在运行,现在它是一个路由问题,但为什么它显示" / app_name / current / public"在日志中因为我没有尝试访问这条路线? 好吧,它在我的public_html / .htaccess中是相同的路径,然后我发现我有所有的系统变量来引用我的public_html / app_name / current / public / .htaccess中的rails路径我必须得到摆脱public_html / .htaccess配置。

所以,我删除了public_html / app_name / current / public / .htaccess文件并将所有内容添加到了public_html / .htaccess中:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domainname.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^(www.)?domainname.com$  

Allow from all
Options -MultiViews
PassengerResolveSymlinksInDocumentRoot on
RailsEnv production
RackBaseURI /public_html/app_name/current
SetEnv GEM_HOME /home1/user/ruby/gems
PassengerAppRoot /home1/user/public_html/app_name/current

然后我遇到了一个问题,我公开/上传的图片没有显示,所以我已添加:

RewriteRule ^uploads/(.*)$  /faux/current/public/uploads/$1 [R=301,NC,L]
相关问题