我们的一个项目采用动静分离的部署方式,服务接口在自己的服务器上,静态资源保存在OSS,通过CDN访问。不过这样有时会有跨域问题。本文总结解决的办法
<!--more-->
原来的做法
原本的做法,服务接口部署在自己的服务器上,通过域名api.xxx.com访问,不走CDN
静态文件,包括html,css,js,图片等,部署在OSS上,通过域名s.xxx.com访问,经过CDN加速
这种架构在性能上表现很不错,但是服务接口是通过ajax调用的,通过设置Access-Control-Allow-Origin允许跨域请求,但是这需要跨域
而实践发现,在某些移动端的浏览器里,跨域访问失败。比如三星S3,某些vivo手机等。因为这涉及到安卓版本,手机型号,浏览器版本等,很难彻底解决
所以最后就考虑能否通过改进部署方式,来彻底避免跨域请求
新的方案
希望实现2个目的:
1、静态资源和服务接口需要在同一个域名下
2、域名要通过CDN加速,保证性能
现在的做法,是把静态资源和服务接口都部署到自己的服务器上,把自己服务器作为CDN的源站
然后在CDN上配置规则,对于/svc开头的url,不设置缓存(即确保这种请求回源)即可
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
6. **跨域支持**:考虑到跨域资源共享(CORS)的问题,cdnex可能会提供相应的解决方案,以避免因资源加载引发的跨域限制。 7. **日志和监控**:为了便于问题排查和性能分析,cdnex可能提供日志记录和性能监控功能。...
- 探讨实际项目中遇到的问题及解决方案,如跨域问题、状态管理等。 7. **未来展望** - 微前端技术的发展趋势,如Web Components的普及可能带来的影响。 - 新兴框架对微前端的支持,如Vue 3.0的Teleport特性。 -...
11. **跨域支持**:通过设置HTTP头,允许从其他域名访问生成的缩略图,便于CDN部署。 12. **安全特性**:防止恶意参数,限制非法访问,例如限制源图片路径,避免文件遍历攻击。 在实际使用`phpThumb`时,你需要在...
7. `crossdomain.xml`:跨域策略文件,用于允许来自不同域名的请求,这对于视频流媒体服务可能很重要,因为内容可能从不同的服务器或CDN加载。 8. `api`:这个目录可能包含API接口的代码,用于与后端服务器进行数据...
此外,Vue CLI还支持动态公共路径(publicPath),这在部署到CDN或者子路径时非常有用。例如,如果你的应用部署在`http://your-domain.com/subfolder`,则设置`publicPath`为`'/subfolder/'`: ```javascript ...
- 分离静态资源:将Ueditor的JavaScript和CSS文件部署到CDN,减少服务器压力,加快用户访问速度。 7. **实际应用场景** - 内容管理系统:用于文章编辑和发布,方便非技术背景的用户编辑网页内容。 - 论坛和评论...
设置代理服务器,将API请求代理到Spring Boot应用的地址,避免跨域问题。 4. **状态管理**:对于React或Vue.js,可以使用Redux或Vuex等状态管理库来处理与后端交互的数据。 5. **安全控制**:Spring Security提供...
综上所述,苹果CMS作为一个全面的视频网站解决方案,涉及的内容包括但不限于网站架构、数据库管理、安全防护、用户体验、版权法务等多个方面。在搭建和运营过程中,需要综合运用各种技术和策略,确保网站的稳定、...
14. **跨域策略和解决方案**:了解同源策略及其对Ajax请求的影响,以及CORS、JSONP等跨域解决方案。 15. **安全**:防止XSS和CSRF攻击,理解HTTP头部如Content-Security-Policy的作用。 为了深入理解“maoneng_v2...
为了避免这种情况,可以考虑将其部署到服务器或使用CDN服务。 ### 方式三:自定义预览界面 1. 创建一个名为`index.html`的预览界面,包含必要的CSS和JavaScript引用,如PDF.js库。在这个例子中,我们使用了cdnjs...
- **CDN分发**:通过内容分发网络,将静态资源部署在全球各地的服务器上,提高加载速度。 - **代码压缩与合并**:减少HTTP请求,降低传输体积,提高加载速度。 4. JavaScript 安全考虑 - **XSS攻击防御**:防止...
前端优化方案包括但不限于代码压缩、图片优化、懒加载、缓存策略、CDN加速等。这些技术的应用有助于提高网站的加载速度和用户体验。 ### 三十四、Diff算法 Diff算法是React中的一个重要概念,用于比较新旧虚拟DOM...
它允许不同应用之间共享代码,从而实现更高效、灵活的开发和部署。这个特性是Webpack 5引入的新功能,极大地改进了大型项目中的代码分割和动态导入策略。 在JavaScript世界中,传统的代码共享方式通常是通过npm包或...
- **CDN**:使用内容分发网络来提高资源的加载速度。 - **代码拆分**:使用webpack等工具按需加载代码。 ### Progressive Web App(PWA) PWA是一种混合了传统网站和移动应用功能的应用程序。它利用现代Web技术为...