2015-09-27 28 views
0

问题: 最近有人要求我在Rails中制作一个完全静态的网站“dynamic”。 静态站点有数百页,每个页面都包含其他链接,我的任务是将静态站点集成到Rails应用程序中。Ruby on Rails:将布局应用于数百个现有静态页面

我想:

iframe中。我将静态网站放在/ public下,并将该网站加载到常规rails页面上的iframe中。它的工作原理,但它不是一个可接受的解决方案:

  1. 数百页的iframe是不利于搜索引擎优化。他们只是不能包含在我的sitemap.xml中,并通过谷歌索引。
  2. 用户无法通过在 浏览器中输入一个URL访问一个静态页面。
  3. 由于Google Analytics(分析)代码位于布局中,因此显然无法跟踪页面上iframe中的用户行为。

我错过任何防护栏宝石/技巧,可以处理这种情况?

在Rails中,什么是处理大量静态页面的最佳方式?

回答

0

在Rails中,什么是处理大量静态页面的

有大量静态页面的最佳途径。

严重的是,Rails是现存的最强大的,动态的和全面的应用框架之一,并且想用静态页面来填补呢?

你会是最好的制作basic CMSmarkdown填充它:


#app/models/page.rb 
class Page < ActiveRecord::Base 
    #columns id | title | body | created_at | updated_at 
    #has_many :categories -> the power of Rails; you can add whatever you want! 
end 

#app/controllers/pages_controller.rb 
class PagesController < ApplicationController 
    before_action :find_page, only: [:show] 

    def index 
     @pages = Page.all 
    end 
    def show 
    end 

    private 

    def find_page 
     @page = Page.find params[:id] 
    end 
end 

这会给你创建一组简单的路由能力:

#config/routes.rb 
root to: "pages#index" 
resources :pages, only: [:index, :show] 

- -

你不得不自己填充数据库,或者如果哟u想创建一个非常简单的管理方面,我强烈建议使用Devise

#config/routes.rb 
namespace :admin do 
    root to: "pages#index" 
    resources :pages, path: "" #-> yoururl.com/admin/... 
end 

这会给你创造一个CRUDadmin/pages控制器的能力:

#app/controllers/admin/pages_controller.rb 
class PagesController < ApplicationController 
    before_action :set_page, only: [:edit, :update, :show, :destroy] 
    before_action :authenticate_user! 

    def index 
     @pages = Page.all 
    end 

    def edit 
    end 

    def update 
     @page.update page_params 
    end 

    def destroy 
     @page.destroy page_params 
    end 

    def show 
    end 

    private 

    def page_params 
    params.require(:page).permit(:title, :body) 
    end 

end 

然后你只需要把你的网页放到数据库中,让你通过你的路线给他们打电话。如果您需要自定义路线,请使用friendly_id来创建它们。

0

我相信是有解决方案的想法可以像,将所有静态页面到CSV或Excel格式文档,之后获得的数据在轨道布局。

+0

静态页面上的链接怎么样? –

+0

这就是我说CSV或Excel的原因。 –