1

我有这个代码:

# Users page
get '/admin/users' do
  @title = "Admin - Users"
  erb :admin_users
end

呈现视图时,我在 ERB 文件中获得了 HTML,但布局文件未呈现。如果我将路线更改为“/users”,一切都会正常。是什么赋予了?在找到有关如何执行此操作的示例代码并遇到此问题后,我最初将用户 ERB 页面放在子目录“views/admin”中。我认为这就是原因,但似乎是导致问题的 URL。还有其他人遇到这个或知道解决方法吗?

我所有其他的观点也都很好。这是我尝试使用 URL 模式的第一个视图。我也试过这个,但它没有影响任何东西。

# Users page
get '/admin/users' do
  @title = "Admin - Users"
  erb :admin_users, :layout => :layout
end

任何帮助表示赞赏。谢谢。

4

3 回答 3

1

我遇到了同样的问题,请检查布局中资产的路径。您应该/先添加。

<link href='/stylesheets/application.css' rel='stylesheet' type='text/css'>是正确的。

于 2013-06-01T06:09:05.283 回答
0

如果您使用admin_users视图的子目录,您应该将其保存为views/admin/users.erb然后渲染它

get '/admin/users' 做 erb :'admin/users' end

也许这已经解决了您的问题。如果您需要更多帮助,请告诉我。

我想当您为管理视图设置与文件位置不同的视图目录时,您可能会遇到麻烦layout.erb。你试过layout.erbviews/admin/文件夹里放一个假人吗?

于 2012-07-03T09:18:27.760 回答
0

你没有显示你得到的确切错误。我假设模板“admin_users.erb”是“没有这样的文件或目录”。

您的“erb”调用中缺少一个选项,您应该告诉 Sinatra 在哪里可以找到模板。这对我有用:

# Users page
get '/admin/users' do
  @title = "Admin - Users"
  erb :'admin/admin_users', :layout_options => { :views => 'views/admin' }
end

views/admin/admin_users.erb它使用来自的布局呈现模板views/admin/layout.erb

于 2017-06-27T18:24:33.260 回答