如何使用Deface替换模板

时间:2015-03-05 23:44:53

标签: ruby-on-rails spree deface

我是rails的新手,我已经建立了一个标准的狂欢电子商务解决方案。我现在想要自定义默认模板和样式。根据狂欢文档[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

2 个答案:

答案 0 :(得分: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中查找模板,因此只要您在右侧目录中覆盖正确的模板,就可以自定义您喜欢的任何视图。

答案 1 :(得分:0)

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

的替代方法