嗯,也許這可以給一個線索。在我的虛擬主機上的cPanel中創建Rails應用程序時,爲了訪問應用程序,您需要創建一個重寫規則。我做了什麼,但不知道它做了什麼。我跟蹤它到它創建以下兩個文件:
home/mydomain/public_html/.htaccess
:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mydomain.com$
RewriteRule ^/?$ "http\:\/\/127\.0\.0\.1\:12030%{REQUEST_URI}" [P,QSA,L]
和
home/mydomain/.cpanel/ruby-on-rails-rewrites.db:
appname: helloworld
domain: mydomain.com
port: 12030
rewritebasepath: /home/mydomain/public_html
url:
看來這根URL被髮送到Rails的,但任何其他URL不我得到了一個Apache 404(不是Rails 404)。 .htaccess文件有問題嗎? 僅針對域根的重寫條件是什麼?如果是這樣,我怎樣才能使它的任何網址?
原帖:
我想部署一個軌網站,本地罰款但不工作在Web服務器上。 Rails應用程序啓動正常,我可以訪問主頁。但在404
我的主頁任何其他鏈接結果設置爲從routes.rb
內,像這樣:
map.root :controller => "home"
我使用REST風格的路線,並在本地工作正常。在routes.rb
我只有一堆
map.resources :posts
map.resources :images
...
如果我改變map.root
到另一個控制器(即map.root :controller => "posts"
,那麼單頁將顯示效果細膩爲好,和所有其他環節會返回404s,包括之前在map.root
中引用的那個之前工作的那個。
這是我的第一個rails部署,所以它可能是我做錯了什麼。我的web主機技術支持告訴我這是一個編碼問題,他們不能幫助我。
我的網站目錄結構網上像這樣:
/home/mydomain/etc/rails_apps/mysitedir/ <- rails folders (app, config, db, ...)
/home/mydomain/public_html/ <- nothing here
而且,這是在我的軌道公共文件夾中的文件,他們需要保持該文件夾中或者它們應該被放在public_html
文件夾網絡?因爲現在他們也沒有找到。如果我將它們放在public_html
文件夾中,它們可以從主頁(javascript和css和圖像)找到。
在我的錯誤日誌中的cPanel,它表明類似的錯誤:
[Mon Oct 05 08:19:41 2009] [error] [client XX.XX.XX.XX]
File does not exist: /home/mydomain/public_html/market,
referer: http://www.mydomain.com/
如果市場是我想從我的主頁訪問,例如其中一個鏈接,這是我的一個控制器。
總之,我可以訪問的唯一位置是根。
什麼我做錯了,我讓所有這些404? 我沒有shell訪問,我只有cPanel。這與Ruby 1.8.5和Rails 2.3.4一樣,(共享)Web服務器是Linux + Apache 2.2.11(Unix)。
是否會照顧路由的問題,或者它只是爲了在公共文件夾(JavaScript,樣式表,圖像)的東西嗎? – JRL 2009-10-05 14:14:39
將這個命令來創建符號鏈接創建文件的地方,我可以直接創建我的電腦上,並上傳到網站? – JRL 2009-10-05 15:06:19
我嘗試運行該命令來創建符號鏈接(使用cronjob,無法訪問shell),並返回: ln:爲/ home/mydomain/etc/rails_apps創建符號鏈接'/ home/mydomain/public_html/public'/mysite/public /':文件存在 我想這是一個錯誤。 那麼這是什麼意思?而且,在你的語法中,爲什麼第一個路徑以斜線結尾,而第二個路徑不是?這是一個錯誤? – JRL 2009-10-05 15:56:33