有没有办法更新存储在Amazon CloudFront(亚马逊的CDN服务)上的文件?似乎它不会对我们制作的文件进行任何更新(例如删除文件并使用与以前相同的文件名存储新文件).我是否必须明确触发更新过程以从边缘服务器中删除文件以获取已发布的新文件内容?
谢谢你的帮助
Resharper 在我网站的_SiteLayout.cshtml文件中告诉我" 未知的css类'容器流体':
<header class="container-fluid">"
Run Code Online (Sandbox Code Playgroud)
我在<head>部分中有这个:
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
......而且我相信"容器流体"就在那里.这仅仅是Resharper无法找到课程的问题,因为它很遥远吗?
是否可以使用ng-include指令来使用CDN?
在这种情况下:
<div ng-include='http://cdn.somewebsite.com/templates/home.tpl.html'></div>
Run Code Online (Sandbox Code Playgroud)
somewebsite.com的cdn子域通过DNS/CName映射到内容传送网络.
但是,当加载主站点somewebsite.com时,它不会呈现模板.我猜在内部它将此视为跨域调用.
是否有任何工作可以将Angular模板托管在第三方CDN上并使用本地域?
所以我在s3上使用cloudfront dist托管了我的角度应用程序.我做文件修改(使用grunt filerev)以确保我永远不会得到陈旧的内容.但是,我应该如何对index.html文件进行版本控制.它是必需的,因为所有其他文件都在index.html中引用.
我已将我的存储桶配置为静态站点.因此,当我在url中引用存储桶时,它只会获取index.html.
Cloudfront说你应该将最小TTL设置为0,因此它总是会命中原点来提供内容.但是,我不需要这个,因为我正在对我的所有文件进行文件修订(index.html除外).我可以利用cdn缓存这些文件.
他们还说,为了使单个对象无效,请将max-age标头设置为0.我尝试将以下内容添加到我的index.html
<meta http-equiv="Cache-Control" content="public, must-revalidate, proxy-revalidate, max-age=0"/>
Run Code Online (Sandbox Code Playgroud)
但是,一旦您在s3上传,这就不会反映出来.我是否需要使用s3cmd或仪表板在s3上显式设置标头?每当index.html更改并上传它时,我是否需要这样做?
我知道我可以使用cmd使单个文件无效,但它是一个重复的过程,如果它只是通过在s3上部署就可以解决它本身.
在Cloudflare DNS设置页面上,它说明了这一点 An A, AAAA, CNAME, or MX record is pointed to your origin server exposing your origin IP address.
我的域名中有一条MX记录指向mail.mydomain.com.我相信这是邮件工作所需要的东西.如何防止它暴露我的原始IP地址?
简历:我需要在没有wepback或类似工具的情况下运行React Router.直接来自CDN链接,但我遇到了一些require.js错误.
我开始使用React构建我的第一个应用程序,我正在努力使用React Router.
HTML:
<body>
<div id="container"></div>
<script src="https://unpkg.com/react@15/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.js"></script>
<script src="https://npmcdn.com/react-router@2.4.0/umd/ReactRouter.js"></script>
<script type="text/babel" src="assets/scripts/03_templates/app.js" charset="utf-8"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
JS:
var { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } = ReactRouter;
//some classes
ReactDOM.render((
<Router history={hashHistory}>
<Route path="/" component={Window}>
<IndexRoute component={InitialPage}/>
<Route path="register" component={Register} />
<Route path="search" component={Search} />
</Route>
</Router>
), document.getElementById("container"));
Run Code Online (Sandbox Code Playgroud)
一切都运行正常,但我在控制台上得到这个:
react.js:3639警告:您正在手动调用
getComponentprop 的React.PropTypes验证函数IndexRoute.这已被弃用,在下一个主要版本的生产中无法使用.由于第三方PropTypes库,您可能会看到此警告.
所以,我想我的反应路由器是旧版本.我将链接更改为
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router/4.0.0-0/react-router.js"></script>
Run Code Online (Sandbox Code Playgroud)
警告:React.createElement:type不应为null,undefined,boolean或number.它应该是一个字符串(对于DOM元素)或一个ReactClass(对于复合组件).
我搜索它,似乎问题在第1行.所以我改变了这个:
var { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } = …Run Code Online (Sandbox Code Playgroud) 我开始关注HTML5s允许离线Web应用程序的能力.
前段时间我发现使用CDN对我的应用程序运行良好,所以我一直坚持使用它们,主要是为了jQuery.
但是,清单文件似乎不允许缓存跨域资源.
此时我一直在使用相关Dive Into HTML5教程中描述的catch-all清单.我的jQuery类似于HTML5 Boilerplate中定义的内容.
我希望能够继续从CDN为在线用户提供jQuery服务,但可能还有一个本地副本用于离线访问.
是否值得尝试追求这条路线,或者我应该切换到只是从我的网站提供jQuery,以满足所有请求?
谢谢.
我目前使用Akamai作为CDN,但我注意到浏览器也在缓存内容.浏览器缓存images/css/js非常棒,但我想知道是否有一种方法可以不在浏览器上缓存,而是在Akamai中缓存.
现在,从我的起源开始,我发送这样的标题:
Cache-Control: public, must-revalidate, max-age=300
Expires: Sun, 19 Feb 2012 19:04:30 GMT
Date: Sun, 19 Feb 2012 18:59:30 GMT
Run Code Online (Sandbox Code Playgroud)
Akamai尊重这些标题,但也将它们传递给用户.这使得浏览器实际上也缓存了内容.
这在大多数情况下都很有用,但我们也有一些CDN逻辑,如果用户有登录的cookie,绕过CDN缓存并直接到源.
因此,如果让一个未经过验证的用户点击"登录",则会通过登录过程发送它们并返回到同一页面.即使CDN会从源页面请求此页面,浏览器实际上再次请求相同的页面,看起来好像登录没有工作.
现在,我可以强制登录过程添加一个查询参数,如?l = 1或者其他什么,但必须有更好的方法.
我很想知道Akamai是否可以将Cache-Control标头覆盖为硬编码的无缓存值,但我想知道是否有办法在源中执行此操作?
谢谢!
我首先要提一下,我已经做了一些挖掘,但似乎无法找到我要找的正确答案.
我正在使用一些外部资源的网站上工作:
我在"使用内容分发网络(CDN)"上获得了"F"级.一个不同的SO Post链接到YSlow FAQ(直接链接),但这似乎表明我需要在我的浏览器上定义我的CDN,这对我来说似乎是一个快速解决方案,但这并不能解决其他浏览器和/或设备.
至于"添加过期标题"等级,我得到了E.问题是,这就是我得到的:
There are 3 static components without a far-future expiration date.
(2014/2/26) http://fonts.googleapis.com/css?...
(2014/2/26) http://www.google-analytics.com/analytics.js
(2014/2/26) http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js
Run Code Online (Sandbox Code Playgroud)
我怎么去纠正这个?我的本地文件都由我所照顾,.htaccess如下所示:
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month" …Run Code Online (Sandbox Code Playgroud) 我正在使用cdn.rawgit.com来托管我的一些脚本和css用于项目,但我无法刷新它.根据FAQ:
对cdn.rawgit.com的请求通过MaxCDN的超快速内容传送网络进行路由,并在第一次加载时永久缓存.这样可以获得最佳性能并减少RawGit和GitHub上的负载,但这意味着重新加载不会从GitHub获取新的更改.
这是否意味着我永远无法刷新?或者有没有办法强制刷新使用最新版本?
cdn ×10
amazon-s3 ×2
akamai ×1
angularjs ×1
cloud ×1
cloudflare ×1
css ×1
github ×1
html ×1
html5 ×1
http-caching ×1
http-headers ×1
ip ×1
javascript ×1
jquery ×1
manifest ×1
performance ×1
react-router ×1
reactjs ×1
requirejs ×1
resharper ×1
security ×1
yslow ×1