0

我是 Rails 新手,我已经建立了一个标准的狂欢电子商务解决方案。我现在想自定义默认模板和样式。根据 spree 文档 [1],最好的方法是使用 Deface。不幸的是,我无法弄清楚现有视图​​/布局的位置。

例如,虽然文件建议:

例如,要覆盖主布局,请创建文件YOUR_SITE_OR_EXTENSION/app/views/spree/layouts/spree_application.html.erb

app/views的文件夹不包含名为spree

谁能告诉我,如何更改视图模板?

谢谢你。

[1] https://guides.spreecommerce.com/developer/view.html

4

2 回答 2

0

您必须实际创建该目录和沿途的每个目录,直到您到达要覆盖的文件。如果你从你的根目录运行这些命令,你应该很高兴。

mkdir app/views/spree
mkdir app/views/spree/layouts
touch app/views/spree/layouts/application.html.erb

然后从这里复制内容:https ://github.com/spree/spree/blob/master/frontend/app/views/spree/layouts/spree_application.html.erb到您刚刚创建的文件中。

如果您重新启动 Web 服务器,您应该能够对本地 application.html.erb 文件进行更改并在本地查看它们。

任何时候你想完全覆盖一个模板,你可以在 Github 上找到你需要覆盖的模板:https ://github.com/spree/spree并重新创建必要的文件/目录。Spree 会在 gem 之前在 localhost 中查找模板,因此只要在正确的目录中覆盖正确的模板,您就可以自定义任何您喜欢的视图。

于 2015-03-09T14:19:07.490 回答
0

或者,您可以尝试运行 rails generate spree:frontend:copy_views 命令从 gems 中提取您需要的所有视图,并且可以严格按照 gems 文件夹层次结构手动添加任何缺少的视图。例如,在 gems 中是 parsl 在下面的 spree_backend/views/spree/admin/users/_lifetime_stats.html.erb。要输入所需的代码,我必须在以下路径上创建一个文件夹 - 项目的名称/app/views/spree/admin/users/_lifetime_stats.html.the erb 以及我将在此处进行的所有更改都将落入主视图代码。这是 Deface::override 的替代方案

于 2018-07-19T12:32:34.037 回答