RequireJS 和 Mustache(或任何其他引擎):放置模板的位置

发布于 2024-12-25 20:46:21 字数 713 浏览 0 评论 0 原文

我正在使用 RequireJSMustache。模板的内容位于一些外部文件中,这些文件是通过文本插件加载的。

唯一让我有点恼火的是它所强加的目录结构。我的所有脚本都位于 js 目录中,如下所示

index.html
js
  libs
    require.js
    text.js
    jquery.js
    ...
  controllers
    ...
  views
    ...
  ...

因此我使用 baseUrl = 'js' 配置 RequireJS,以简化模块名称。但这迫使我在 js 目录中包含模板,否则它们对文本插件不可见。

有没有办法配置 RequireJS,以便在脚本目录之外的其他位置查找文本文件依赖项?

(当然我可以避免文本插件并手动定义AJAX请求来抓取文件,但这不是问题的重点。如果可能,我想使用现有的工具)

I am using RequireJS and Mustache in a Javascript application. The content of the templates is inside some external files, which are loaded via the text plugin.

The only thing that slightly annoys me is the directory structure this imposes. All my scripts live inside a js directory, like this

index.html
js
  libs
    require.js
    text.js
    jquery.js
    ...
  controllers
    ...
  views
    ...
  ...

Hence I configure RequireJS with baseUrl = 'js', to simplify module names. But this force me to have templates inside the js directory, otherwise they are not visible to the text plugin.

Is there a way to configure RequireJS so that text files dependencies are looked elsewhere than the scripts directory?

(Of course I could avoid the text plugin and manually define AJAX requests to grab the files, but this is not the point of the question. If possible, I would like to use the existing tools)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

隐诗 2025-01-01 20:46:21

您可以指定绝对路径。来自文档

但是,如果依赖项名称具有以下属性之一,则会将其视为常规文件路径,就像传递给标记的路径一样:

  • 以“.js”结尾
  • 以“/”开头
  • 包含 URL 协议,例如“http:”或“https:”

You can specify an absolute path. From the docs:

However, if the dependency name has one of the following properties, it is treated as a regular file path, like something that was passed to a tag:

  • Ends in ".js"
  • Starts with a "/"
  • Contains an URL protocol, like "http:" or "https:"
用心笑 2025-01-01 20:46:21

我通常将我的 baseUrl 设置为 。以 js 开头的脚本路径如下:

require.config({
    baseUrl: ".",
    paths: {
        "lodash": "js/ext/lodash/dist/lodash",
        "jquery": "js/ext/jquery/jquery",
        "domReady": "js/ext/requirejs-domready/domReady",
        "text": "js/ext/requirejs-text/text.js"
    }
});

现在我可以将模板保存在 ./templates 中并轻松引用它们。

I usually set up my baseUrl to . and script paths starting with js like this:

require.config({
    baseUrl: ".",
    paths: {
        "lodash": "js/ext/lodash/dist/lodash",
        "jquery": "js/ext/jquery/jquery",
        "domReady": "js/ext/requirejs-domready/domReady",
        "text": "js/ext/requirejs-text/text.js"
    }
});

Now I can keep templates in ./templates and reference them easily.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文