当前位置: 首页 > 知识库问答 >
问题:

如何使用Grails资产插件引用静态HTML rsource?

尹钱青
2023-03-14

我使用的是Grails 2.4.1和Grails资产管道插件版本1.9.7。

我有一个javascript文件(它定义了一个AngularJS指令),它需要引用一个静态超文本标记语言文件(它将用作AngularJS指令的模板)。

我如何在资产目录中引用HTML文件?

项目结构:

  • 圣杯应用
  • 资产
    • 脚本
      • 指令
        • 层次结构查看器.js
        • 层次结构查看器.html

        使用角度模板资产管道圣杯插件时的项目结构

          < li>grails应用程序 < ul > < li >资产 < ul > < li > javascripts < ul > < li >指令 < ul > < li>hierarchyviewer.js
        • hierarchyviewer.tpl.html

        directivea.js包含:

        angular.module('HierarchyViewer', []).directive('hierarchyviewer',function(){
            return {
                restrict: 'EA',
                scope: {},
                replace: true,
                controller: function ($scope, $http) {
                },
                templateUrl: 'hierarchyviewer.tpl.html'
            }
        
        })
        

        但是;当我尝试加载引用该指令的页面时,我得到一个404作为 directives/directivea.html 引用。

        使用资源管道插件时如何正确引用模板?

共有2个答案

包子航
2023-03-14

有一个插件叫角度-模板-资产-管道。它的本质是将你的. tpl.htm模板放到< code>$templateCache中。那么你可以像这样使用它(来自文档的例子):

angular.module('myApp.appSection', ['ngRoute'])
.config(function($routeProvider) {
      $routeProvider
          .when('/index', {
              templateUrl: 'index.htm'
          })
          .otherwise({redirectTo: '/index'});
});
羊舌墨一
2023-03-14

角模板资产管道插件作者在这里。几个调整,这应该适合你。

  • 该插件期望模块名称采用驼峰大小写。
  • 该插件还会从文件名中删除 .tpl,因此在这种情况下,您最终会得到一个名为 hierarchyviewertemplate 的文件.js
  • 确保文件名(不包括扩展名)是唯一的。

在最后一点上,由于资产管道插件将忽略资产目录中的父文件夹,以下每个位置中的文件都将导致冲突:

  • /assets/javascripts/hierarchyviewertemplate。js
  • /assets/templates/hierarchyviewertemplate.tpl。html

就实际代码而言,这样的东西应该更适合您:

//= require_self
//= require_tree /hierarchyViewer

angular.module('hierarchyViewer', []).directive('hierarchyviewer',function(){
    return {
        restrict: 'EA',
        scope: {},
        replace: true,
        controller: function ($scope, $http) {
        },
        templateUrl: 'hierarchyviewertemplate.html'
    }
});

这将假设您的hierarchyviewertemplate.tpl。html文件位于

grails-app -

如果您的模板包含在插件中,请用< code>require_full_tree替换< code>require_tree

希望有帮助。

 类似资料:
  • 我正在寻找正确的url来引用静态资产,比如VUEJavaScript中的图像。 例如,我正在使用自定义图标图像创建传单标记,我尝试了几个URL,但它们都返回: Main.vue: 我试过把图像放在资产文件夹和静态文件夹,但没有运气。我必须告诉Vue以某种方式加载那些图像吗?

  • JS 代码中引用媒体文件 可以直接在代码中使用 ES6 的 import 语法引入文件并在 JSX 中使用,目前仅支持图片类型的媒体文件。 JSON 中引用媒体文件 当你需要在 app.json 中配置使用的本地媒体文件(比如导航栏图片地址)时,可以将使用到的媒体文件放置到 src 下的某个目录下,并在 build.json 中将其配置到 constantDir 字段的数组中,示例如下: {

  • 有时你需要在 Markdown 文件中直接链接到静态资源,因此,将静态资源与 markdown 文件放在一起就会很方便。 我们已经为 Webpack 设置了相应的加载器(loaders)来处理大多数常见的文件类型,以便在导入(import)文件时获得其 url,并将静态资源自动复制到输出目录中。 假设有以下文件结构: # 你的文档 /website/docs/myFeature.mdx # 你要

  • 如果你以前使用过官方的 vuejs-templates/webpack 样板,那么你应该对 static/ 目录很熟悉。这里面,你可以放置可供 main 和 renderer 进程使用的静态资源。在 Vue 应用程序中使用这些资源很简单,但是使用 fs 和其他需要完整路径的模块可能会有点棘手。 幸运的是,electron-vue 提供了一个 __static 变量,它可以在开发和产品阶段生成 st

  • 我用Java编写代码已经有一段时间了,我理解静态方法和非静态方法之间的区别。但我最近遇到静态对象引用

  • 我从Apache切换到Nginx,使用apache,皮肤文件夹中的所有静态文件(图像、css、javascript)都直接由Apache提供服务。 示例: 我读了一些关于Nginx和Plone的文档,但我没有看到。下面是Plone.orgconf的例子:https://github.com/plone/plone-org-nginx/blob/master/nginx.conf 所以,我的问题是: