【问题标题】:Content versioning for angularjs with Asp.net使用 Asp.net 对 angularjs 进行内容版本控制
【发布时间】:2014-06-19 09:50:45
【问题描述】:

有人知道在使用 ASP.NET 和 angularjs 时对 .html、.js、.cc 等静态内容进行版本控制的最佳方法吗?

到目前为止,我发现的唯一一件事就是在自定义 httpmodule 中操作 Etag。

有什么想法吗?

【问题讨论】:

  • 你的构建过程是什么?你在使用 Grunt、Gulp 还是类似的东西?

标签: asp.net angularjs


【解决方案1】:

看看 ASP.Net 中的捆绑和缩小

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

这将为您的 .jS 和 .CSS 资产添加版本控制。这是一个很好的起点,可以使用插件或自定义配置/代码进行扩展以满足您的需求。

有些插件支持 TypeScript、CoffeeScript、Less 和 Sass。

这样做的另一个好处是,除了对您的资产进行版本控制外,这会将它们捆绑在一起以减少请求 - 并缩小它们以减小大小。

【讨论】:

  • 感谢您的回答,但我们不能使用捆绑进行版本控制,因为所有 .js 和 .css 链接都在 index.html 文件中。 .html 文件的主要问题。
  • 有什么原因不能将 .html 更改为 .cshtml 吗?这将允许您使用捆绑。
  • 老兄,我们的产品几乎准备好了,很快就会发货,所以是的,这是有原因的 :)
  • 如果您不使用 ASP.Net,您将无法获得 ASP.Net 解决方案。只有加载初始 JS 和 CSS 的页面需要将其文件扩展名重命名为 cshtml。这很可能在 1 到 12 页之间。事实上,将它们更改为 CSHTML 仅意味着将脚本元素更改为 @Scripts.Render() 并确保加载了正确的 Razor 程序集。
  • 可以,您听说过 Web API 吗?将 Web API 与 angularjs 一起使用怎么样?我已经告诉过你,你的解决方案不是一个选择。
【解决方案2】:

您可以使用 Grunt 来构建您的 js、css 等。您需要做的资产版本控制就是使用 grunt-filerevgrunt-usemin 插件。 第一个将版本文件系统中的文件,第二个将整个 html 和 css 中的所有静态引用更新到版本化文件。

我在 web.api / angularjs 项目中使用了以下简单的方法:

   filerev: {
        options: {
            encoding: 'utf8',
            algorithm: 'md5',
            length: 8
        },
        all: {
            src: [
                '<%= project.dist %>/scripts/spa.min.js',
                '<%= project.dist %>/images/**/*.{jpg,jpeg,gif,png,svg,ico}',
                '<%= project.dist %>/styles/spa.min.css'
            ]

        },
    },
    usemin: {
        html: 'index.html',
        css: 'Content/**/*.css'
    },

注意:以上内容进行了修订。如果您需要添加版本号,可以查看grunt-version(我正在使用带有版本和时间戳的生成文件顶部的横幅进行修订)

【讨论】:

    猜你喜欢
    • 2011-02-07
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2016-03-12
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多