0

我希望你能幫助..我繼承了一個小的網站在軌道中,我已被任命編輯。我對PHP有很好的理解,但我是一個全新的rails。在生產編輯導軌應用程序

我需要對文件做一個非常簡單的編輯,但我沒有在保存時顯示在網站上。該文件位於config目錄中。我已經重新啓動了從Mac OS 10.8服務的計算機,我已經在線搜索了很多答案,包括禁用緩存,將config.cache_classes更改爲false,將config.consider_all_requests_local更改爲true,但似乎沒有任何效果。該網站使用獨角獸作爲服務器。

我錯過了什麼?我意識到這可能是一種使用rails的可怕方法,並且我已經承諾我會學習它,但現在我只需要知道如何進行實時更改,因爲我習慣使用html,php等對FTP進行更改。

謝謝您的期待!

回答

0

可能只需要從應用程序的根目錄,運行觸摸TMP/restart.txt如果你有ssh訪問

PROJECTDIR的/ tmp/restart.txt

你可以打開TMP/restart.txt您通過任何文本編輯器,然後按Ctrl + S(保存),讓文件FTP服務器會感動和服務器將重新啓動

,或者如果你有ssh訪問運行在Rails

觸摸TMP/restart.txt應用程序根目錄


---編輯---

對不起沒看到你說你已經重新啓動機器的一部分。資產管道更可能出現問題。

嘗試刪除公共/資產

,然後運行

束EXEC耙資產:預編譯

我認爲這是一個命令來清除並重新編譯,但我不記得它

此外,如果這些答案無濟於事,那麼知道你實際編輯過的內容和方式可能會有所幫助。這是CSS嗎?標記?控制器?

+0

嗨,謝謝你的建議。我刪除了公共/資產並運行預編譯,然後重新啓動了機器,但仍未更新。我正在編輯的文件位於名爲initializers的子文件夾中的config文件夾中。該文件很簡單,只是三個獨立的if語句來處理某些操作的調度。我只改變了這些行動安排的時間間隔。 –

+0

初始化子目錄中文件的名稱是什麼。有一些ruby腳本觸發cronjobs,例如需要運行控制檯命令 –

+0

它被稱爲purge_old_pickups.rb - 大概是這個應用程序的自定義文件。 –

1

如果您已經重新啓動機器,並且所做的更改仍未顯示,那麼您一直在編輯錯誤的文件。也許它真的從這臺機器上的另一個文件夾中提供?或從另一臺機器?

+0

嗨,謝謝。我正在編輯的文件位於名爲initializers的子文件夾中的config文件夾中。該文件很簡單,只是三個獨立的if語句來處理某些操作的調度。我只改變了這些行動安排的時間間隔。當我將它從我們的「生產」機器複製到這臺機器上時,它確實在這臺機器上,看看我是否可以配置它運行,所以它在開發機器上生產是否合理? :) –

+0

和哪個初始化文件是你的編輯? –

+0

它被稱爲purge_old_pickups.rb - 大概是這個應用程序的自定義文件。 –

0

使用名爲Capistrano的軟件部署Rails應用程序是很常見的。如果您發現文件app/Capfileapp/config/deploy.rb那麼您的應用程序正在使用它。 Capistrano的典型工作流程爲:

  • 從源代碼管理系統信息庫中獲取應用程序的本地副本。使用git clone從GitHub)本地
  • 編輯文件(和測試,但你可能不存在)
  • 提交和推送,以源頭控制
  • 運行cap deploy做到所有這一切可能需要的東西,例如重新編譯asssets

Capistrano的確實(在最基本的用法)是什麼:

  • 創建your-app-name/releases/<date-filename>/
  • 子目錄獲得從源頭上控制庫中的最新代碼到該目錄(如git pull
  • your-app-name/current中的符號鏈接替換爲新目錄中的一個
  • 重新啓動服務器(如果使用Phusion Passenger,touch your-app-name/current/tmp/restart.txt的竅門,否則,您可能需要重新啓動Web服務器

正如在另一個答案中指出的,「資產」(CSS,JS,圖像)的更改將需要重新編譯。我認爲從<your-app-name>子目錄運行bundle exec rake assets:precompile就足夠了,但如果事情搞砸了,首先運行bundle exec rake assets:clean

在某些情況下,capistrano和源代碼管理設置爲要求部署使用執行部署的用戶的本地憑據 - ssh-agentssh-add命令支持此功能。如果您的源代碼管理系統不允許直接從服務器訪問(如果設置的話,您會在app/config/deploy.rb中看到一行ssh_options[:forward_agent] = true),您將需要這些信息。

當然,還有許多其他依賴項需要根據您的環境進行管理。如果你有一個遠程先進的環境,你應該做的工作是搞清楚如何部署正確的方式,可能與capistrano。

+0

嗨湯姆,謝謝你的幫助。 Capistrano目前未配置。我安裝了它,但我仍在掙扎。我有點創建GitHub的賬戶,安裝的Git,並選擇存儲庫後,失去了......我沒有任何的那個呢,這是一個本地網絡上運行的應用程序的只是一個本地副本。我不知道是否應該創建一個存儲庫,因爲我沒有編寫應用程序。我還沒有完全清楚GitHub的工作原理。 :( –

+0

哦,我......算了Capistrano的和GitHub的!對不起,我真的沒有比已經說過多得多。 –

+0

我需要學習,我會的!謝謝你的幫助。我是一個有點震驚它是如此難以做出這樣一個簡單的改變什麼本質上只是一個小網站。什麼會帶我秒PHP已經採取小時爲止。再次感謝您的時間,這個資源是非常寶貴的。 –

0

下面是我在做到底的,我知道這不是你的意思使用Rails的方式..

我備份的應用程序目錄下,重新成像的開發機我用來測試它。根據http://rubyonrails.org/download執行完整的Ruby on Rails安裝。我使用相同的名稱創建了一個新的空白應用程序,然後將我正在使用的應用程序的內容複製到新的應用程序框架中,選擇不覆蓋任何現有文件。然後,我安裝了Passenger並將其作爲獨立版運行。這使我的應用程序重新開始運行,現在,當我在配置/初始化程序中對文件進行了任何更改時,它們在重新啓動乘客時反映出來。所以我很好去。

現在我需要學習如何做到這一點..謝謝大家。