我有两个防火墙:
api (用于API调用)main (其他一切)我的客户端应用程序登录通过main防火墙进行 但是,它确实与api防火墙下的端点交互以获取数据.这里的问题是我不想强迫用户第二次登录以对第二个防火墙进行身份验证.
如何只使用一个登录表单对两个防火墙进行身份验证?
我想全局配置assetic转储我的JS文件的输出目录.目前,他们总是去web/js/*.我想改成这个web/js/compiled/*.
可以在每个文件级别指定:http://symfony.com/doc/2.0/cookbook/assetic/asset_management.html#dumping-asset-files
似乎找不到在我的Symfony应用程序中全局设置此方法的方法.我缺少任何配置参数?
UPDATE
找到一个名为的资产配置参数write_to.设置此选项config.yml会导致命令行将assetic:dump文件转储到新目录,但在twig文件中,asset_urlvar仍然指向原始路径.
我的理解kernel.terminate是它在响应返回给客户端后触发.
在我的测试中,看起来并非如此.如果我sleep(10)在kernel.terminate中调用了一个函数.浏览器也等待10秒钟.处理似乎在发送响应之前发生.
我在配置中有以下内容:
calendar:
class: Acme\CalendarBundle\Service\CalendarService
arguments: [ @odm.document_manager, @logger, @security.context, @event_dispatcher ]
tags:
- { name: kernel.event_subscriber }
Run Code Online (Sandbox Code Playgroud)
我的订阅者类:
class CalendarService implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return array(
'kernel.terminate' => 'onKernelTerminate'
);
}
public function onKernelTerminate()
{
sleep(10);
echo "hello";
}
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
这似乎与Symfony没有发送Content-Length标题有关.如果我生成它,响应将正确返回.
// app_dev.php
...
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
// --- START EDITS ---
$size = …Run Code Online (Sandbox Code Playgroud) 我使用cwRsync将一些文件从Windows同步到Ubuntu.这个过程曾经在Vista上运行良好,但自从我升级到Windows7后,我不断遇到权限问题.
一些背景...我确实用过在Vista上获得相同的权限问题,但是通过使用CYGWIN=nontsec环境变量解决了这个问题.
预备问题
rsync: failed to modify permissions on xxx: Permission denied (13)
Run Code Online (Sandbox Code Playgroud)
由于Windows和UNIX文件权限不同,因此使用Windows权限同步文件没有意义.rsync的作用是将UNIX端的权限设置为0(d---------).为了防止这种情况,cygwin有一个nontsec变量,指示它忽略Windows文件的权限.
问题是,在Windows7上,nontsec似乎没有任何影响.
我对Chrome有这个奇怪的问题.它经常出现缓存PUT请求.
详细信息:我有一个使用backbone.js的应用程序,当尝试将某些更改保留到模型时(主干自动生成PUT请求),Chrome只是不会将该请求发送到服务器.它在Firefox和IE中运行得非常好(到目前为止还没有在Safari中看到过这个问题).
以下是Chrome开发者工具"网络"标签的屏幕截图.如您所见,PUT请求的响应是从缓存返回的(请求没有到达服务器!!)

这是同一请求的标题详细信息的屏幕截图.再一次,很明显Chrome并不打算将PUT请求发送到服务器.

请求的有效负载是JSON数据.有关为什么会发生这种情况的想法/我做错了什么?
更新: Chromium已经确认这确实是一个错误(感谢JanHančič).
临时解决方案
我最终覆盖了Backbone.sync方法并将时间戳附加到PUT,POST和DELETE请求的查询字符串,以便它们始终是唯一的:
if(!options.data && model && (method == 'create' || method == 'update' || method == 'delete')) {
params.url += (params.url.indexOf('?') == -1 ? '?' : '&') + '_=' + new Date().getTime();
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找REST API"干运行"操作的一些最佳实践.
假设我有一个端点,将资金从账户A转移到账户B.我可以像这样开始转账:
POST /transactions
{
"amount": 1000, // how much to transfer
"source": "A", // account to transfer from
"destination": "B" // account to transfer to
}
Run Code Online (Sandbox Code Playgroud)
此操作会创建一个"事务",因此响应将是一个事务对象,其有效负载包含:
{
"id": "txn-123",
"amount": 1000,
"source": "A",
"destination": "B",
"fees": 10, // any fees that were charged
"balance": 2500 // balance in source account AFTER transfer
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在几个原因下进行干跑:
那么,"干跑"概念的最佳实践是什么?我可以想到几个选择:
这些是我对此事的看法,但我喜欢听别人的想法.
我试图在我的jQuery tmpl中运行一个计数器,以便可以执行一些后模板逻辑。问题是由于某种原因,我无法使计数器增加1。它似乎总是以某个随机数增加。
这是我的HTML:
<div id='myDiv'></div>
<script id='tpl'>
${i=0}
${i++}
${i++}
${i++}
${i++}
</script>
Run Code Online (Sandbox Code Playgroud)
...这就是我调用模板引擎的方式:
$.tmpl($('#tpl'), {}).appendTo("#myDiv");
Run Code Online (Sandbox Code Playgroud)
我也将其放在jsfiddle上:http : //jsfiddle.net/2ZtRL/1/
我期望的输出是:0 1 2 3 4相反,我得到0 3 7 11 15
完全奇怪!救命!
我有可能是一个边缘案例场景.当试图将值舍入4.015到2位小数时,我总是最终得到4.01而不是预期的4.02.对于具有.015小数部分的所有数字,这种情况始终如一.
我在JS中使用了一个相当常见的方法:
val = Math.round(val * 100) / 100;
Run Code Online (Sandbox Code Playgroud)
我认为问题在乘以100时开始.浮点不准确导致该值向下舍入而不是向上.
var a = 4.015, // 4.015
mult = a * 100, // 401.49999999999994 (the issue)
round = Math.round(mult), // 401
result = round / 100; // 4.01 (expected 4.02)
Run Code Online (Sandbox Code Playgroud)
小提琴:http://jsfiddle.net/eVXRL/
如果我尝试回合,这个问题就不会发生4.025.期望值4.03确实回归; 它只是一个问题.015(到目前为止).
有没有办法优雅地解决这个问题?当然只有.015一次性寻找和处理这种情况的黑客,但这似乎是错误的!
symfony ×3
javascript ×2
jquery ×2
assetic ×1
backbone.js ×1
cwrsync ×1
fastcgi ×1
firewall ×1
math ×1
nginx ×1
permissions ×1
rest ×1
variables ×1
windows-7 ×1