我正处于整个Rails周期的最后阶段:开发 - >测试 - >生产(在外部服务器上)。我非常接近......但是看到了生产版本的一些错误,并且对Rails的“魔法”还不够了解它还没有解决它......
这可行:www.mydomain.com/rails
并返回我的应用视图
但是:www.mydomain.com/rails/
返回(完整):
<html>
<body>
Index from public
</body>
</html>
这是从哪里来的!?!我已经排除了Apache。因为Apache不会将那种html作为目录的索引返回...
已添加:VirtualHost(每次请求):
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAdmin admin@mydomain.com
DocumentRoot "/Library/WebServer/mydomainweb"
DirectoryIndex "index.html" "index.php"
CustomLog "/var/log/apache2/access_log" "%h %l %u %t \"%r\" %>s %b"
ErrorLog "/var/log/apache2/error_log"
ErrorDocument 404 /error.html
<IfModule mod_ssl.c>
SSLEngine Off
SSLCertificateFile "/etc/certificates/Default.crt"
SSLCertificateKeyFile "/etc/certificates/Default.key"
SSLCipherSuite "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:!SSLv2:+EXP:+eNULL"
</IfModule>
<IfModule mod_dav.c>
DAVLockDB "/var/run/davlocks/.davlock100"
DAVMinTimeout 600
</IfModule>
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 4096
</IfModule>
<Directory "/Library/WebServer/mydomainweb">
AllowOverride None
<IfModule mod_dav.c>
DAV On
</IfModule>
Options All -Includes -ExecCGI +MultiViews -Indexes
</Directory>
RailsBaseURI /rails
<Directory /Library/WebServer/rails/myapp/public>
Options -MultiViews -Indexes
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
</IfModule>
<IfModule mod_proxy_balancer.c>
<Proxy "balancer://balancer-group">
</Proxy>
</IfModule>
<IfModule mod_alias.c>
Alias "/collaboration" "/usr/share/collaboration"
Alias "/icons/" "/usr/share/httpd/icons/"
Alias "/error/" "/usr/share/httpd/error/"
Redirect temp "/zapp.html" "/index.html"
</IfModule>
Include /etc/apache2/httpd_groups.conf
Include /etc/apache2/httpd_teams_required.conf
LogLevel warn
ServerAlias mydomain.com
ServerAlias images.mydomain.com
</VirtualHost>
答案 0 :(得分:0)
我的猜测是,apache启用了目录浏览,乘客将此请求路由到公共文件夹,而公共文件夹又将直接进入apache。
你可以尝试
答案 1 :(得分:0)
对于第二个,如果你这样做了吗?www.mydomain.com/rails/mycontroller/show/1?
如果它与mycontroller和1之间的“show”一起使用,那么你的路线就会出现问题。