我有一个脚本第三方网站正在使用:/assets/script.js.出于显而易见的原因,我不能要求他们在每次部署时更改链接以指向脚本的最新指纹版本.我有一些缓存问题,用户仍然看到旧版本的/script.js.有没有办法让缓存直接消失script.js而不是 script-9dc5afea3571ba2a883a72b0da0bb623.js?
更多信息:Passenger + Nginx上的Rails.script.js如果手指打印文件并在每个部署上使缓存无效,则寻找提供文件的方法.
我考虑过根据部署git修订添加ETag,但不知道如何做到这一点.Nginx没有内置的ETags支持.有不受支持的旧第三方模块可以执行此操作.我可以使用add_header Etag="something"它,但如何在那里添加git版本.
还有其他想法和选择吗?
谢谢!
我一直在教育自己.读这个:
引擎从右到左评估每个规则,从最右边的选择器(称为"密钥")开始并移动每个选择器直到找到匹配或丢弃规则.("selector"是规则应适用的文档元素.)
例如:
ul li a {...}
#footer h3 {...}
* html #atticPromo ul li a {...]
Run Code Online (Sandbox Code Playgroud)
现在,一些示例代码SASS为我输出:
#content #blog {
/* ... */
}
/* line 85, ../sass/screen.scss */
#content #flickr {
/* ... */
}
#content #flickr div p {
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
这看起来有点尴尬..我做错了什么?这是我和Sass之间的沟通问题吗?我们输了吗?
编辑:一些SCSS代码:
#flickr {
@include columns(5,8);
background: url('../img/ipadbg.png') no-repeat;
#ipod-gloss {
z-index: 999;
position: relative;
}
div {
margin-top: -80px;
margin-right: 20px;
h2 {
color: $white;
font-size: 24px;
}
p { …Run Code Online (Sandbox Code Playgroud) 推文按钮通常是:
<a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="someone">Tweet</a>
<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
Run Code Online (Sandbox Code Playgroud)
在这里,我可以在用户推文时收到回调:
<script>
twttr.events.bind('tweet', function(event) {
console.log(event);
});
</script>
Run Code Online (Sandbox Code Playgroud)
我不明白:twitter如何给我这个回调?推文是在另一个窗口和另一个域中完成的.这怎么可能?
我正在使用骨干,以及在页面加载时传递集合的一般方法
window.router = new Routers.ManageRouter({store: #{@store.to_json});
Run Code Online (Sandbox Code Playgroud)
这很好,效果很好,直到有人决定将文本" <script>alert("owned")</script>" 添加到其中一个商店字段.最后</script>明显关闭了javascript.怎么能绕过这个呢?
:javascript
$(function() {
window.router = new Dotz.Routers.ManageRouter({store: #{@store.to_json}});
Backbone.history.start();
});
Run Code Online (Sandbox Code Playgroud)
以上输出:
<script>
//<![CDATA[
$(function() {
window.router = new Dotz.Routers.ManageRouter({store: '{"_id":"4f3300e19c2ee41d9a00001c", "points_text":"<script>alert(\"hey\");</script>"'});
Backbone.history.start();
});
//]]>
</script>
Run Code Online (Sandbox Code Playgroud) 我网站中的用户可以上传自己的模型照片或从库中选择.当用户从库中选择时,我将文件名作为字符串发送到服务器{file: {url: 'url.jpg'}}.我还没有找到一种方法,即载波可以在不上传的情况下更新模型文件.我可以在我的模型中写一个检查该参数是否存在的条件然后model.file = File.open('str.jpg').从安全角度看是不是很糟糕?如何"上传"文件,或者只更新文件属性,以引用服务器上已有的文件?
谢谢!
这是了解一下Haskell的一个例子:
ghci> [ x*y | x <- [2,5,10], y <- [8,10,11], x*y > 50]
[55,80,100,110]
Run Code Online (Sandbox Code Playgroud)
那么,这里发生了什么,将x*y被计算两次或一次?
有没有办法使用CSS隐藏滚动条,同时仍然保持其功能?甚至使它透明或背景的相同颜色将是好的.我必须在JavaScript中执行此操作吗?
如何根据Google地图缩放级别更改图标的高度和宽度?
我正在使用Google Maps api v3.
在SICP 1.2.1中,有一个函数可以生成一个有理数,如下所示:
(define (make-rat n d)
(let ((g (gcd n d)))
(cons (/ n g) (/ d g))))
Run Code Online (Sandbox Code Playgroud)
我只是好奇你如何使用lambda而不是let来实现相同的东西,而不需要两次调用GCD.我自己无法理解.
有人给了我一个充满惊人信息的宝库.扫描公告的200MB .tiff图像可以追溯到40年代.我想将其数字化,但我对OCR一无所知.一些早期的材料几乎不被人类阅读,更不用说机器了.它也是希伯来语.
我正在寻找有关如何处理此问题的建议.关于书籍,文章,代码库或软件的好建议(所有这些都应该可以在网上免费获得).我精通C++和Python,如果需要,可以选择另一种语言.
谢谢.
javascript ×5
ruby ×3
css ×2
jquery ×2
backbone.js ×1
callback ×1
carrierwave ×1
file-upload ×1
google-maps ×1
haml ×1
haskell ×1
lambda ×1
nginx ×1
ocr ×1
sass ×1
scheme ×1
sicp ×1
twitter ×1