0

下面是我如何在 PHP 中组织一个网站clothing.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

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

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

4

2 回答 2

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文件夹中。

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

于 2013-03-08T19:04:58.630 回答
0

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

编辑:如果您查看路由文件夹,您会看到他使用 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
于 2013-03-08T17:14:56.090 回答