11

使用 yeoman generator-angular,它假定您要将 css 和脚本文件与 index.html 文件放在同一服务器中。它生成一个 dist/index.html 文件,如下所示:

<link rel="stylesheet" href="styles/7d151330.main.css">
<script src="scripts/6f9c9a13.scripts.js"></script>
<script src="scripts/bd6ce9e3.plugins.js"></script>
<script src="scripts/ec88f033.modules.js"></script>

但是,我想将 CSS/JS 文件托管在不同的服务器上,并以 URL 开头:

<link rel="stylesheet" href="//mycdn.com/styles/7d151330.main.css">
<script src="//mycdn.com/scripts/6f9c9a13.scripts.js"></script>
<script src="//mycdn.com/scripts/bd6ce9e3.plugins.js"></script>
<script src="//mycdn.com/scripts/ec88f033.modules.js"></script>

我相信这是 YSLOW 的最佳实践,实际上您正在查看的 stackoverflow 页面正在使用它(查看源代码以查看他们在https://cdn.sstatic.net/上的注释)似乎没有不同的 CDN可以使用grunt-google-cdn插件

我目前的想法是执行搜索并插入:

<script src="[INSERTHERE]scripts/
<link rel="stylesheet" href="[INSERTHERE]styles/ 

更新:有几个 grunt 插件可以执行搜索/替换,所以这可能是最好的路线。

在 grunt 构建期间获取附加的 CDN url 的任何其他建议?

4

3 回答 3

3

我正在寻找相同的功能,似乎这个包可以完成这项工作: https ://github.com/tactivos/grunt-cdn

于 2013-08-23T03:33:01.117 回答
1

这完成了工作 https://www.npmjs.org/package/grunt-cdnify 对于标准用例,只需为您的 URL 设置一个基本字符串 - 例如,'//cdn.example.com/'。cdnify 任务将自动搜索文件中的所有本地 URL,并在它们前面加上这个字符串。(它会自动避免添加双斜杠。)

于 2014-03-10T18:59:08.653 回答
0

对于比“CDNize”更通用的目的,您可以使用 grunt-preprocess 模块,该模块允许您预处理源文件(html 和其他)。

有了这个,您可以根据任何变量构建源文件..比如不同环境的 URL、DEBUG 代码添加等......

更多信息在这里:https ://github.com/jsoverson/grunt-preprocess

ps:在这里查看我的另一个相关答案:How to set AngularjJS base URL dynamic based on fetched environment variable?

于 2014-03-14T08:25:01.137 回答