我正在尝试将我们的图像部署到cdn.目前,css具有我们网站上图像的相对路径.这些路径需要支持CDN图像位置.有没有人有关于我如何做到这一点的建议?
或者,如果有人有关于部署到CDN的好教程.
这就是我最终实现这一目标的方式.
UPDATE
我们使用bash来更新文件
cat > preprocess/sass/_cdn.scss <<EOT
\$image_path: "//CDN_URL/";
Run Code Online (Sandbox Code Playgroud)
_cdn.scss中的示例代码
$image_path: "/public/images/";
Run Code Online (Sandbox Code Playgroud)
然后它在本地默认工作,但在生产推送时,我们运行bash脚本以使用cdn位置进行更新
截至目前我正在使用这样的javascript
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js"></script>
<script> $.fn.modal || document.write('<script src="js/bootstrap.min.js">\x3C/script>')</script>
Run Code Online (Sandbox Code Playgroud)
我正在从bootstrapcdn加载bootstrap.css
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
如果cdn服务器关闭,有人可以告诉我如何加载本地副本.?
我有几个JavaScript文件,我在每个项目上使用,目前使用CDNJS加载它们.
但是,我试图查看是否有一种很好的方法来检查CDN是否可用,或者是否可以从CDN获得这些文件.当然,如果CDN上没有这些文件,我会在本地加载它们.
这是我目前使用的JS文件:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>window.jQuery || document.write('<script type="text/javascript" src="./scripts/jquery.min.js">\x3C/script>')</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/retina.js/1.0.1/retina.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.3.0/respond.js"></script>
<!--[if (gte IE 6)&(lte IE 8)]>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/selectivizr/1.0.2/selectivizr-min.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,如果我有加载jQuery的后备,而不是任何其他文件.
任何帮助将不胜感激!
我看着https://material-ui-next.com谁似乎在firebase托管上运行并在其上使用CloudFlare.
这提出了一个问题.firebase托管网站是否需要额外的层来处理DDoS保护?据我所知,firebase提供开箱即用的SSL,CDN,DDoS和缓存?什么时候想要在其上添加CloudFlare?
我已经创建了一个 S3 并且我成功地在存储桶上上传了文件。现在,我试图让它与 CloudFront 一起工作,但它给了我
非法位置约束异常
ap-east-1 位置约束与此请求发送到的区域特定端点不兼容。
我的 S3 网址是:http : //my-bucket-name.s3.ap-east-1.amazonaws.com/assets/local/css/app.css(这会返回文件)
CloudFront 链接到 S3,网址为:https : //id.cloudfront.net/assets/local/css/app.css(这会返回 IllegalLocationConstraintException)
在 S3 存储桶 > 权限 >
“阻止公共访问”已关闭
“存储桶策略”是自动生成的:
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "######"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
由于大多数 CDN 声称他们可以根据用户的位置更快地提供静态内容,我想知道他们实际上是如何做到这一点的。
例如,如果我有这样的 HTML:
<html>
<head> title </title>
<body>
</h1>Hello world</h1>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.0.0-alpha-464f27572-20210713/umd/react.production.min.js" integrity="sha512-ajIHzHkfQaAO507V8rEsyK4ftf96GFD7TC4znUxoKaRr7D0U/qmRDCXAXpc5DmmwoUnHcNtx6gaz14R0PHtRrg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
CDN 提供商如何知道我位于英国并且应该连接到(例如 AWS 西欧)?他们有特殊的 DNS 设置吗?他们采用什么技术让我的浏览器知道应该在哪里请求资源?
我的猜测之一是他们有一台服务器可以读取用户的 IP 并相应地重定向,但这没有意义,因为如果服务器位于香港而我在纽约,那么往返将花费大部分时间潜伏期的时间。所以我猜他们一定有一些办法来解决 DNS 级别的这个问题。
我通过互联网进行了搜索,但找不到任何解释。你能向我解释一下吗?
如果由于某种原因导致Google CDN版本无法加载,HTML5 Boilerplate将使用脚本加载jQuery的本地副本:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
Run Code Online (Sandbox Code Playgroud)
是否可以使用Google Web Fonts执行此类操作?含义:如果远程字体无法加载,请使用服务器上存储的字体的本地副本.
我有一个亚马逊s3桶,里面有成千上万的文件名.获取列出存储桶中所有文件名的所有文件或文本文件列表的最简单方法是什么?
我试过了listObject(),但似乎只列出了1000个文件.
amazon-s3-returns-only-1000-entries-for-bucket-and-all-for-another-bucket-u S3-Provider-does-not-than-than-1000-items-from-bucket
- > 列出使用适用于PHP的AWS开发工具包的密钥, 但在aws文档中我读过
max-keys - string - 可选 - 方法调用返回的最大结果数.返回的列表将不包含比指定值更多的结果,但可能返回更少的结果.默认值为1000.
有没有办法列出所有内容并使用AWS PHP SDK将其打印到文本文件?
可能的重复: 快速到列表所有文件在亚马逊-s3桶
我转发了这个问题,因为我正在寻找php中的解决方案.
代码:
$s3Client = S3Client::factory(array('key' => $access, 'secret' => $secret));
$response = $s3Client->listObjects(array('Bucket' => $bucket, 'MaxKeys' => 1000, 'Prefix' => 'files/'));
$files = $response->getPath('Contents');
$request_id = array();
foreach ($files as $file) {
$filename = $file['Key'];
print "\n\nFilename:". $filename;
}
Run Code Online (Sandbox Code Playgroud) 我的代码中有以下代码 .htaccess
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
Run Code Online (Sandbox Code Playgroud)
上
cdn.domain.com/abc.jpg (expiration not specified)
cdn.domain.com/abc.png (expiration not specified)
Run Code Online (Sandbox Code Playgroud)
JS,CSS和其他的问题也一样.
我需要投入的.htaccess主要是达到A级.
我是 nextJS 的新手,我在通过 CDN 在应用程序中包含 bootstrap 时遇到了麻烦。在应用程序中的何处添加链接是最佳实践?