【问题标题】:Need help organizing my files and routes in Sinatra (moving old PHP site to Sinatra)需要帮助在 Sinatra 中组织我的文件和路由(将旧的 PHP 站点移动到 Sinatra)
【发布时间】:2013-02-24 07:39:48
【问题描述】:

这是我如何用 PHP 组织网站 clothes.com 的示例:

index.php
style/
  style.css
men/
  index.php
  style/
    style.css
women/
  index.php
  style/
    style.css

您将如何在 Sinatra 中组织同样的网站?我很困惑,因为 Sinatra 似乎不太适用于“文件夹”结构,但您会将路线放在同一个文件中:

get '/' do
  haml :index
end

get 'men' do
  haml :men
end

get 'women' do
  haml :women
end

问题是使用此模型的所有内容都进入同一个“公共”文件夹。这是它应该组织的方式吗?

您将如何组织样式表文件,每个文件对于索引、男性、女性都不同?他们也应该进入同一个“公共”文件夹吗?

【问题讨论】:

  • men/index.phpwomen/index.php 有什么区别?您确定您的 PHP 应用程序一开始就结构良好吗?
  • @MladenJablanović 男性站点位于 men/index.php 中,女性站点位于 women/index.php 中(通用主站点位于根 index.php 中)我不确定是否是很好,但我一直都是这样做的。如果您对 Sinatra 中更好的站点组织有任何想法,请随时发表评论/回答! :)
  • 我在询问这两个文件中的 PHP 代码。男性和女性的编程逻辑是否有所不同? (而不是像index.php?category=menindex.php?category=women 这样的东西)为了得到一个好的答案,你应该尽可能地描述你的编程领域。
  • @MladenJablanović 是的,就我而言,男性网站与女性网站有很大不同,所以我将它们放在两个单独的文件夹中。如果网站足够相似,我会使用您的 ?category=men 方法。

标签: ruby sinatra rack


【解决方案1】:

老实说,来自 PHP 很困难。

您的网站有一些注意事项。你想保持你的旧网站结构吗?如果是,您将不得不在 Sinatra 中使用相同的路线:

get '/index.php' do
  haml :index
end

get '/men/index.php' do
  haml :men
end

get '/women/index.php' do
  haml :women
end

然后您还必须将您的样式文件放入相应的公共文件夹中:

/public
  /style
    style.css
  /men
    /style
      style.css
  /women
    /style
      style.css

或者,如果您想保留旧样式路径,您可以从这些旧文件夹重定向到一个文件夹:

get '/men/stye/style.css' do
  redirect '/style/men_style.css'
end

fet '/women/style/style.css' do
  redirect '/style/men_style.css'
end

如果您编写所有新的haml模板,您可以将它们直接放入/public文件夹中。

请记住,当您通过 style.css(没有任何路径)在 haml 模板中调用样式文件时,Sinatra 会在检查路由之前首先查看 /public/style.css

【讨论】:

    【解决方案2】:

    我一直在我的 sinatra 项目中使用以下模板: Sinatra Github project template

    编辑:如果您查看路由文件夹,您会看到他使用 init.rb 文件来要求他的其他路由。

    另外,我通常这样组织我的 css:

    public/
        css/
             main.css
             men.css
             women.css
    

    如果 css 文件夹中的 css 文件太多,我通常会这样做:

    public/
        css/
            men/
                men.css
                more.css
                evenmore.css
            women/
                women.css
    

    【讨论】:

      猜你喜欢
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      相关资源
      最近更新 更多