Javascript 更改EJS模板目录
我将EJS与Rails4一起使用。现在,我的代码如下所示:Javascript 更改EJS模板目录,javascript,ruby-on-rails,ruby,templates,ejs,Javascript,Ruby On Rails,Ruby,Templates,Ejs,我将EJS与Rails4一起使用。现在,我的代码如下所示: // in javascripts/helpers.js function render(template_path, data) { return JST['templates/' + template_path](data); } 这允许我将我的ejs模板放入javascripts/模板中,然后使用以下内容呈现它们: //This will render javascripts/templates/about/photos
// in javascripts/helpers.js
function render(template_path, data) {
return JST['templates/' + template_path](data);
}
这允许我将我的ejs模板放入javascripts/模板中,然后使用以下内容呈现它们:
//This will render javascripts/templates/about/photos
render("about/photos",{ iLength: iLength })
但是现在我需要将目录更改为在视图目录中。My.ejs文件现在位于视图/stores/
这可能吗?谢谢你的帮助 是的,这是可能的
从中,您可以通过将路径附加到config.assets.paths
,将文件夹添加到资产管道中。因此,如果要添加的路径是app/views/stores
,则应修改config/application.rb
,如下所示:
config.assets.paths << Rails.root.join("app", "views", "stores")
i、 e.新目录的路径
另一种不使用相对路径的方法是将名为javascript templates.js
(或其他合适的名称)的文件添加到stores文件夹的根目录中,如下所示:
.
└── views
└── stores
├── foo
│ ├── bar.jst.ejs
│ └── baz.jst.ejs
└── javascript-templates.js
并在javascript templates.js
中添加以下行:
//= require_tree .
然后在application.js中添加以下内容
//= require javascript-templates
其中javascript模板是您决定命名上述文件的名称
重新启动rails服务器后,JST对象现在应该包含app/views/stores
文件夹中的模板。在上面的示例中,您可以通过以下方式访问views/stores/foo/bar.jst.ejs
中的模板:
JST['foo/bar']()
不过,我可能会坚持使用app/assets文件夹
JST['foo/bar']()