如何使用 ember-rails gem 为我的 HandlebarsJS 模板指定替代目录?

2024-01-11

我有一个 Rails 应用程序,并且在前端使用 Ember。我想将目录结构中与 ember 相关的文件下移一级,但当我这样做时,模板不再呈现。

在应用程序的普通工作版本中,我的目录结构是:

./app/
  assets/
    javascripts
      application.js
      ember-app.js
      routes.js
      store.js
      models/
      controllers/
      routes/
      templates/
      views/

与:application.js

//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require ember-app
App = Ember.Application.create();

和:ember-app.js

//= require ./store
//= require_tree ./models
//= require_tree ./controllers
//= require_tree ./views
//= require_tree ./helpers
//= require_tree ./templates
//= require ./router
//= require_tree ./routes

一切正常。但是,我想将 ember-app 文件和所有 ember javascript 代码下移一级,当我这样做时,模板不会呈现。 (应用程序的一部分使用 Ember,但不是整个应用程序,我正在尝试通过资产管道设置两个单独的路径。)

所需的结构是:

./app/
  assets/
    javascripts
      application.js
      embro/
        ember-app.js
        routes.js
        store.js
        models/
        controllers/
        routes/
        templates/
        views/

与:application.js(修订:'require ember-app' 变为 'require embro/ember-app')

//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require embro/ember-app
App = Ember.Application.create();

(ember-app.js 未经修改。)

正如我所说,移动后,屏幕上不会出现任何模板内容。屏幕上或控制台中没有错误,只是一个空的 ember 应用程序。

当我在控制台中检查 Ember.TEMPLATES 时,会列出所有预期的模板。此外,如果我将所需的内容放入适当的 Rails 视图中的 x-handlebars 模板中,内容就会成功呈现,就像原始目录结构一样。

例如,在 apps/views/welcome/index.html...

<script type="text/x-handlebars" data-template-name="application">
  <h1>hello</h1>
  {{ outlet }}
</script>

<script type="text/x-handlebars" data-template-name="index">
  <h1>this is the index</h1>
</script>

...我们很高兴再次出发。

但如果我将 Rails 视图留空,就像我对原始结构所做的那样,那就不行了。

想知道 ember-rails gem 是否需要 app/assets/javascripts/templates 中存在车把模板,以及是否有办法覆盖它。文档提到向应用程序配置块添加 templates_root 选项,我想知道这是否是关键。我玩了一下,还没有运气。

有任何想法吗?


UPDATE:

恐怕我对 templates_root 选项没有任何运气。作为实验,我尝试构建一个新的、简单的 Rails 应用程序,并使用 ember-rails 引导生成器来启动并运行它。一切都很好,但是如果我尝试简单地改变name的 templates 文件夹(即 app/assets/javascripts/templates -> app/assets/javascripts/temple),并对 sprockets 包含和配置文件进行适当更改,我得到了相同的结果。

templates_root 选项是否有可能被破坏?

我正在使用 Ruby 1.9.3、Rails 3.2.11、ember-rails 0.10.0

有没有指向我应该在 ember / ember-rails / handbars 源代码中查找的位置的指针?已经开始摸索了。

thanks!


你是对的,你需要设置templates_root。尝试添加

config.handlebars.templates_root = 'embro/templates'

到配置块application.rb, or

RailsApp::Application.config.handlebars.templates_root = 'embro/templates/'

到一个新的初始化程序,其中RailsApp是您的应用程序的名称。

Edit:

我能够重现您所描述的行为templates_root。对我来说解决方法是删除/tmp我的应用程序的文件夹并重新启动 Rails。之后,模板就被正确命名了。

Edit:

更准确地说,您需要清除链轮缓存/tmp/cache/assets改变后templates_root.

Edit:

正如下面的评论中提到的,一个简单的rake tmp:cache:clear应该解决这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ember-rails gem 为我的 HandlebarsJS 模板指定替代目录? 的相关文章

  • 同一模型之间的两个 has_many 链接

    I have users其中有products通过 habtm 链接 该链接正在运行 我想添加一个链接user模型和product模型 以跟踪creator该产品的 当然 谁并不总是拥有该产品 但是当我写在我的user and produc
  • Grails Asset-pipeline 不加载角度部分模板

    我将 angular ui bootstrap 与 Grails 2 3 x asset pipeline 1 6 1 插件一起使用 其中一个组件 alert js 正在尝试加载 template alert alert html 但这会解
  • Mongoid 命名范围比较同一文档中的两个时间字段

    我需要在 Mongoid 中创建一个命名范围来比较同一文档中的两个时间字段 例如 scope foo where gt updated at gt gt checked at 这显然不会像它对待的那样起作用 checked at作为一个符号
  • 我的整个 Rails 应用程序仅从一个文件获取 css 为什么

    我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css 我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从product css我为两个控制器添加了不同的 css 文件 但我的整个应用程序仅从p
  • Rails 4 i18n,如何转换子域用于区域设置的路由

    我正在使用子域来确定 Rails 4 网站中的区域设置 我完全按照我想要的方式使用区域设置切换器 但现在我需要翻译路线 并且我不确定继续的最佳方法 我看过https github com kwi i18n routing https git
  • Mongoid 中的 find_or_create_by 线程安全吗?

    我有一个使用 Mongoid 的 find or create by 方法的网络应用程序 poll Poll find or create by fields 在投入生产之前 我尝试运行故障场景 我发现多个用户可以尝试使用此方法访问此资源
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • Rails 注释分段错误

    有一些问题围绕着这个问题 但没有什么真正能满足我的需求 After I bundle install下面列出了我的 Gemfile 我运行annotate并出现以下错误 Users nickcoelius rvm gems ruby 1 8
  • 从 Ruby 中的 DateTime 变量获取时间

    我在 ruby 中工作 我有一个包含数据库中今天的日期时间的对象 我只想要时间截断数据 我怎样才能得到那个 Try 日期时间 strftime http www ruby doc org stdlib 1 9 3 libdoc date r
  • 捆绑安装无法从 https://rubygems.org/ 获取规格

    我正在尝试遵循 Hartl Rails 教程 但在使用捆绑器 gem 时遇到了问题 使用命令 bundle install 或 bundle update 时 我得到以下输出 从中获取源索引https rubygems org https
  • git push heroku master 权限被拒绝

    我正在关注 ruby railstutorial 我运行命令 git push heroku master 它吐出了这个错误 Permission denied publickey fatal Could not read from rem
  • 为什么“捆绑”会在我的开发机器上安装生产 gem?

    Gemfile 说 gem sqlite3 groups gt development test gem mysql2 group gt production 然而当我打字时bundle install在我的开发机器上安装了所有 gem 我
  • 资产管道弃用警告 tsort.rb:226

    我的 Rails 4 2 在开发中运行良好 但在生产环境中我收到以下警告 DEPRECATION WARNING The configuration option config serve static assets has been re
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • Rails 4:资产未在生产中加载

    我正在尝试将我的应用程序投入生产 但图像和 CSS 资源路径不起作用 这是我目前正在做的事情 图像资源位于 app assets images image jpg 样式表位于 app assets stylesheets style css
  • 如何从引擎覆盖 Rails 应用程序路由?

    我有一个 Rails 应用程序 我正在尝试将 Rails 引擎集成到其中 主机应用程序有一些捕获所有路由 magic urls match gt admin rendering show match path edit gt admin r
  • Rails 控制台无法运行

    rbenv 红宝石版本 2 6 6 导轨版本 5 1 4 我正在较旧的代码库中工作 ruby 2 6 6 rails 5 4 1 这是我每天使用的代码库 我必须通过 rbenv 下载一个新的 ruby 版本作为单独的存储库 这样做在我的旧代
  • 测量两个字符串之间相似性的有效方法是什么? (编辑距离使堆栈太深)

    所以 我从这个开始 http en wikibooks org wiki Algorithm Implementation Strings Levenshtein distance Ruby http en wikibooks org wi
  • (Rails) Assert_Select 的烦人警告

    有谁知道如何让assert select在rake测试期间不输出所有那些讨厌的html警告 你知道 就像这样的东西 ignoring attempt to close body with div opened at byte 1036 li

随机推荐

  • 如何在android中现有的html内容附加附加文本?

    我正在开发一个应用程序 在其中我将文本附加到存储在 html 文件中的现有文本 html 文件的位置位于我的应用程序的 assets 文件夹中 我知道如何使用 URL 加载 html 但我的问题是附加文本 以下是我的java代码 publi
  • Servlet 3.0 注销不起作用

    我对 Servlet 3 0 的身份验证功能有疑问 在 Servlet v3 中使用此代码 log info request getUserPrincipal log info request getAuthType log info re
  • Laravel 5.3WhereIn 返回唯一结果

    我在这个地方遇到问题 我的代码看起来像这样 arrayKeys 1 2 1 4 5 1 products App Product whereIn id arrayKeys gt select id name outright price d
  • 为 ifeq 出错:意外标记附近出现语法错误

    我正在编写一个在一个地方进行字符串匹配的 Makefile 代码如下 if test then shell scripts fi ifeq DIST TYPE nightly shell scripts endif 这里是第一个if第二个是
  • Access Services 和 SharePoint 2010 - 需要信息

    我被要求研究将 Access 解决方案直接发布到 SharePoint 的能力 如下面的演示所示 http channel9 msdn com shows Access Microsoft Access 2010 Demo http cha
  • 如何设置标题栏的背景?

    我已按照此问题的说明进行操作 如何更改操作栏上的文本 https stackoverflow com questions 3438276 change title bar text in android 我能够成功创建自己的标题栏 但是当我
  • facebook django 应用程序的 oauth 中的 redirect_uri 错误

    我在从 Facebook 获取我正在尝试编写的 Django 应用程序的访问令牌时遇到问题 我的视图设置如下 from django http import HttpResponse HttpResponseRedirect from dj
  • 在 ScalaTest 中对集合元素使用 HavePropertyMatcher?

    我已经使用 ScalaTest 的 FeatureSpec 有几天了 我试图了解是否可以使用内置匹配器定义以下规范 如果不能 我如何编写合适的自定义匹配器 假设我有课本 case class Book val title String va
  • GPC 多边形初始化

    我正在使用 GPC多边形裁剪库 http www cs man ac uk toby alan software并想以编程方式创建多边形 我只看到如何从文件创建一个的代码 如何在我的代码中进行初始化 从您的链接中更好地阅读 找到doc ht
  • 当大小太大时,vector.resize 函数会损坏内存

    发生的情况是我正在读取加密数据包 并且遇到一个损坏的数据包 该数据包返回一个非常大的长度随机数 size t nLengthRemaining packet nLength packet m pSource gt GetPosition p
  • Lex VHDL '(勾号)令牌

    在 VHDL 中 字符可用于封装字符标记ie 或者它可以作为属性分隔符 类似于 CPP 的 token ie string hello 解析包含字符的属性名称时出现问题ie string a b c 在这种情况下 天真的词法分析器将错误地标
  • 如何在 Perl 中读取文件并执行 grep 操作?

    open MR
  • plotly::sublot 不显示两个标题

    我正在尝试绘制两个plotly一起绘制在R using plotly subplot 问题是子图没有显示titles两者的plots 类似问题的其他答案建议使用facet wrap or plot ly 但我正在寻找一个适用于ggplotl
  • 在docker容器之间共享数据而不使数据持久化

    假设我有一个包含两个容器的 docker compose 文件 version 3 services app image someimage fpm alpine volumes myvolume var www html web imag
  • 无法在 Swift 框架中导入 Common Crypto [重复]

    这个问题在这里已经有答案了 在 Xcode 中 当我尝试通过 Swift 框架中的桥接头文件添加 Objective C 库 Common Crypto 时 使用 import
  • 为什么 C++11 不支持匿名结构,而 C11 却支持?

    C11 支持匿名结构 如下所示 struct Foo struct size t x y struct Foo f f x 17 f y 42 基本上 这样一个组织的成员struct被视为就好像他们是封闭的成员struct or union
  • Android 捏合/缩放和 glfrustum

    我使用以下命令绘制了几个 2D 形状OpenGL http en wikipedia org wiki OpenGL现在我想添加捏合 缩放 我的观点是透视图 顶视图 我假设它是 3D z 轴 0 现在 我应该如何更改 glfrustum 并
  • 动态重新编译并重新加载类

    我正在用java构建一个可以接收java源文件的服务器 它应该使用JavaCompiler动态编译它 然后加载该类 然而问题是 如果服务器收到一个具有相同名称但内容不同的文件 它仍然会加载以前的类并给出相同的输出 我注意到一些答案建议为我尝
  • C# - 如何将 10 个字节转换为 unsigned long

    我有 10 个字节 4 个字节的低位 4 个字节的高位 2 个字节的最高位 我需要将其转换为无符号长整型 我尝试了几种不同的方法 但都不起作用 Try 1 var id BitConverter ToUInt64 buffer 0 Try
  • 如何使用 ember-rails gem 为我的 HandlebarsJS 模板指定替代目录?

    我有一个 Rails 应用程序 并且在前端使用 Ember 我想将目录结构中与 ember 相关的文件下移一级 但当我这样做时 模板不再呈现 在应用程序的普通工作版本中 我的目录结构是 app assets javascripts appl