requirejs

更新日期: 2015-12-12 阅读次数: 4194 分类: Javascript

RequireJS 为何会请求 name.html.js 而不是 name.html 文件

代码中写的是

var cardTemplate = require('card.html');

而在请求时,实际请求的是 card.html.js 文件, 格式如

define(function(require) {
  return '<div>...html...</div>';
});

Google 得知,在使用不同域名时会导致该问题,即当前页 html 是在 a.com 上,而引用的 html 使用了 CDN, 例如 b.com。 即,同源策略

Under the policy, a web browser permits scripts contained in a first web page to access data in a second web page, but only if both web pages have the same origin.

也就是说 a.html 页面中的脚本, 不允许从非同源的 b.html 页面中获取数据。

怎样才算是同源呢?

如果两个页面拥有相同的协议(protocol),端口(如果指定),和主机(域名, 跨子域也不行),那么这两个页面就属于同一个源(origin)。

具体规则参考 Same-origin policy, 使用 javascript 文件则可以绕过这个限制。

如何生成 name.html.js 文件

使用 RequireJS 自带的 r.js 工具

sudo npm -g install requirejs

参考这里在使用 r.js 优化时,添加参数

optimizeAllPluginResources: true

即可

参考

领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
2020年04月30日 全国交通安全反思日
2020年05月01日 国际劳动节
2020年05月04日 五四青年节
2020年05月05日 立夏
2020年05月08日 世界红十字日
查看更多节日