1つの問題を除いてうまく機能するサブURLで実行される単純なRails3アプリケーションを作成しています。どのコントローラーの「index」メソッドのURLの最後に「.html」拡張子を追加しないと、リクエストは空白のページを返します。どのコントローラーを要求するかは関係ありません。「index」メソッドは、URLをカールするかどうかを含め、常に完全に空を返します。各コントローラーに「index.html.erb」ファイルがあり、シンプルですが完全なHTMLが含まれています。URLに「.html」拡張子を含めると、すべて正常に機能します。URLの例とその結果を次に示します。
http://my.application.url/appname/pages -- returns a blank page.
http://my.application.url/appname/pages.html -- returns the correct HTML page
http://my.application.url/appname/pages/new -- returns the correct HTML form
http://my.application.url/appname/pages/1 -- returns the correct HTML page
http://my.application.url/appname/pages/1/edit -- returns the correct HTML form
私のルートファイルは次のようになります。
My::Application.routes.draw do
scope "/appname" do
resources :posts
resources :pages
root :to => 'home#index'
end
end
私のコントローラーの該当する部分は次のようになります。
class PagesController < ApplicationController
def index
@pages = Page.all
respond_to do |format|
format.html
end
end
...
end
私が言ったように、インデックスメソッドはこの問題を抱えている唯一のものです。application.rb(コントローラーからredirect_toを実行する必要がある場合を除いて機能します)を追加するなど、考えられるすべてのことを試しMy::Application.default_url_options = {:format => "html"}
ましたが、途方に暮れています。このアプリは、Apache 1.3の背後でプロキシされるアプリケーションサーバーとしてThinを使用しています(残念ながら変更できません。Thinサーバーに直接アクセスすると同じ問題が発生するため、これは問題にはならないようです)。どんなアイデアでも大歓迎です。