小编Fra*_*cke的帖子

星号:无法连接到远程星号(/var/run/asterisk.ctl存在吗?)

我正在学习星号.

安装星号后,我尝试使用它连接它

asterisk -rvvvvc.
Run Code Online (Sandbox Code Playgroud)

但它给了我以下错误消息:

无法连接到远程星号(/var/run/asterisk.ctl存在吗?)

我该如何解决这个问题?

asterisk

28
推荐指数
6
解决办法
15万
查看次数

VSCode / tslint 不解析 tsconfig.json 中的路径

vscode 以某种方式不尊重我的 tsconfig.json(几个星期以来,它已经不同了。无论是我的错误还是 vscode 更新......)

{
"compileOnSave": false,
"compilerOptions": {
    "baseUrl": "./",
    "paths": {
        "@foo-animation/*": [
            "src/app/animation/*"
        ],
        ...
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

分别在问题选项卡中:

找不到模块“@foo-animation/animation-micro”或其相应的类型声明。ts(2307)

? 常规基本路径(如@angular/core已正确解决,只有我的“自定义”路径才是问题...

? 编译、构建、运行......一切都像魅力一样。所以我相信从角度/打字稿的角度来看一切都很好。(另外,我使用 IntelliJ 的开发人员没有问题......)所以它似乎归结为“告诉 vscode 关于它”......:-/

Mytsconfig.json位于项目的根文件夹中。唯一的问题是,我使用了另一个tsconfig.app.json,其中包括上面的tsconfig.json

在此处输入图片说明

那么有没有办法告诉 vscode 在哪里寻找它的 tsconfig.json (鼓励解析这些路径)?

This SO questionthis VSCode github issue可能相关,但我仍然不知道该怎么做。

typescript tsconfig visual-studio-code angular tsconfig-paths

8
推荐指数
1
解决办法
859
查看次数

mocha / babel 如何动态转译我的测试代码?

我的问题不是为什么有些东西不起作用,而是为什么它起作用。是的。

\n\n

我有一个小型的nodeJS命令行工具,其中包含nodeJS尚不支持开箱即用的功能,最值得注意的是:

\n\n
    \n
  • import声明
  • \n
  • String.includes()
  • \n
\n\n

因此,对于交付(构建),我转译+捆绑我的源代码(使用parcel,就像webpack一样)。

\n\n

令人惊奇的是,我的所有(除了一个)摩卡测试都直接针对我的类而不是捆绑包运行。尽管如此,它们仍然有效!包括很多import说法。并包括“ES6 自测试”:

\n\n
it( \'String - include\', () => {\n    var s = \'Southern Bananas\'\n    assert( s.includes( \'anana\' ) )\n    assert( !s.includes( \'kiwi\' ) )\n} )\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此:

\n\n

我的测试代码中有 String.include ,而不仅仅是在被测试的源代码中。并且没有地方可以转译或捆绑我的测试代码\xe2\x80\xa6 因此,对我的愚蠢问题表示歉意:

\n\n

为什么这有效?某处是否有秘密的即时编译?(如果是的话,我也可以将其用于我的可交付测试代码的调试风格吗?)

\n\n

我的mocha.opts比较简单:

\n\n
--require @babel/register\n--require ./test/once.js  (nothing special here, either)\n--reporter list\n--recursive\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的.babelrc有这个:

\n\n
{\n    "presets": [\n …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js transpiler ecmascript-6

7
推荐指数
1
解决办法
2986
查看次数

如何忽略git中现有的,已提交的文件?

可能重复:
GIT:忽略版本控制的文件

.gitignoreStackoverflow上有很多答案,但我还没有找到答案:

我有一个现有的git项目,a readme.md和a sample_folder/都在顶层.我确实想从我的git(hub)存储库中删除它们.但我想忽略它们,即在某个克隆的本地存储库(即部署机器)中完全阻止它们.

.gitignore我明白,只是忽略了非承诺文件?坦率地说,我不觉得周围隐藏任何东西(从拉+提交)已经东西致力于...

在Perforce的时代,我会简单地将它从相应的"客户端规范"中排除(这与当地克隆的回购非常接近):

//whatever/myProject
-//whatever/myProject/readme.md
-//whatever/myProject/sample_folder
Run Code Online (Sandbox Code Playgroud)

当然,我可以选择第二个分支,我只需删除自述文件和整个示例文件夹.但是,我必须继续合并来自'develop'的每一个小修复.这是什么,我宁愿避免...我宁愿在(跟踪)分支上更喜欢本地"例外".

此外,我认为git rm --cached每当我做提交(也可能现在发生,然后从我的'部署回购')...

git github gitignore smartgit

6
推荐指数
2
解决办法
7244
查看次数

是否可以使用流上下文在PHP下使用FTPS?

我了解到在PHP for Windows下使用ftps('ftp_ssl_connect()')很难.您被要求进入构建自己的二进制文件以包含Open SSL的漫长旅程...我发现有关phpseclib的建议作为替代(但是获得openssl.cnf支持对等验证的权利对我来说也很难......) .

然后我点击了这篇文章,其令人愉快的简单示例包括工作对等验证(以避免中间人攻击)引起我对流的注意:

$uri = 'https://www.bankofamerica.com/';
$ctx = stream_context_create(['ssl' => [
    'verify_peer' => true, // important
    'cafile' => '/hard/path/to/cacert.pem',
    'CN_match' => 'www.bankofamerica.com'
]]);
$html = file_get_contents($uri, FALSE, $ctx); // we are good
Run Code Online (Sandbox Code Playgroud)

但是,这对ftp连接有用吗?我还可以使用经过对等验证的流上下文来打开ftps流吗? php手册提示,ssl上下文选项也适用于sftp,但缺乏进一步的指导.

所以我疯狂地猜测:

$ctx = stream_context_create(['ftps' => [
    'verify_peer' => true,
    'cafile' => 'd:/sandbox/mycerts.pem',
    'CN_match' => 'ftp-12345678.mywebhoster.com'
]]);
Run Code Online (Sandbox Code Playgroud)

对?错误?用户+密码现在作为选项?然后什么?用户/密码呢?还是以后?我无能为力......

  • 如何扫描远程ftp目录内容以开始?
  • 如何从ftp服务器上传或下载文件?

这有甚么可能吗?(几行代码将非常有用....)或者流是否仅适用于单一文件访问?

更新:Curl可能会做我想要的(包括对等验证和目录lsiting),如本SO答案所示.本周晚些时候会检查......

php security ftp ssl ftps

6
推荐指数
1
解决办法
3272
查看次数

React.js:某些组件可以只进行 SSR 渲染吗?

来自一些经典的服务器端模板语言(php、jsp),我有一个关于 React.js 的一般架构问题:

我可以限制页面的某些组件仅在服务器端呈现吗?并相应地减少客户端 javascript 包?

*我发现它通常大得可笑。一个原因(afaik):每个组件都必须能够在状态更改和 SPA(又名软、虚拟..)页面导航时重新呈现,因为所有更改都是作为数据传入的,而不是作为预渲染的 html 块(afaik) .

在此处输入图片说明

基本上,我在几乎所有的 Web 项目中都看到了 2 种不同类型的内容部分:

1) 高度动态的“facebook-ish”交互部分 个人问候、消息和消息计数器、喜欢和回复……这里默认的 React 行为处于最佳状态:新数据进来,全局状态(redux 存储)更改,所有受影响的组件都得到重新- 渲染。如果没有 react 和 redux sound 原则,这将是一项艰巨的任务。当然,客户端渲染/更新是必经之路。

这通常是顶部的用户登录区域(“你好乔,5 条未读消息”),中间是一些实时数据(股票、天气等),靠近底部的是评论。

2)SSR“静态”内容(想想PHP)

但是,对于我确定的许多部分,没有什么是客户端动态的。例如,页脚菜单可能源于数据库,但在会话期间肯定不会更改。(即使 John Doe 决定喜欢、评论或更改他的名字……)

仅在服务器端渲染它们就足够了。通常主要内容块也可以只使用 SSR。(以及呈现其 html 所需的所有 layout-ish 子组件)

尽管如此,我必须将所有组件都提供给客户端包,以便虚拟/软页面导航也能工作......(传输新数据,但不传输预渲染部分)


您可以告诉我作为一种解决方法,将页脚简单地保持在反应容器安装点之外,但这不是我的观点......可以使用纯 SSR 的“静态”又名部分也可能在其他地方,在动态标题和较低之间响应/反馈/喜欢部分...


我想将 Type-2-components 标记为“SSR-is-enough”(还有它们的子组件——除非 webpack 依赖树弄清楚,它们也用于 Type1-CSR-components ......)。

所以将它作为单个 html blob 发送。还需要在 SPA 式虚拟页面导航上“预渲染”它。(因为组件知识将从客户端包中丢失)

有没有办法做到这一点?之前有人想过这个普遍的,恕我直言的常见问题......?

javascript reactjs webpack webpack-2

6
推荐指数
1
解决办法
608
查看次数

Angular 2 transclusion:我可以将插槽内容向上传递给父组件吗

我有一个外部组件(蓝绿色),其中包含一些带有我自己的ui-button按钮的flexbox 工具栏。还有一个内部组件,主要在棕色区域做它的事情(正如你所期望的)。

但是,根据内部组件(有几个来回切换的组件),必须在顶部/底部栏中插入更多上下文按钮。

(在外部使用绝对定位内容的 CSS 技巧不是一种选择,根据大小和便利性,外部工具栏的位置、大小等可能会有很大差异......)


现在我的问题是:

我可以以某种方式传递对某些占位符(黑色方括号)的引用(就像常规内容投影/嵌入一样),并让它们由来自子组件的内容填充?

也许像ngTemplate[Outlet]这样的东西?和/或使用 @Output

我想“向上传递”多于plain textsimple <b>rich</b> <i>html</i>理想情况下真正的角度模板代码,包括自定义组件,如

    <ui-button icon="up.svg" (click)='...'></ui-button>
    <ui-button icon="down.svg" (click)='...'></ui-button>
Run Code Online (Sandbox Code Playgroud)

...在外部组件的顶部栏中引导到:

<section class='some-flexbox'>
    <ui-button icon="home.svg" (click)='...'></ui-button>

    <ui-button icon="up.svg" (click)='...'></ui-button>
    <ui-button icon="down.svg" (click)='...'></ui-button>

    <ui-button icon="help.svg" (click)='...'></ui-button>
    <ui-button icon="account.svg" (click)='...'></ui-button>
</section>
Run Code Online (Sandbox Code Playgroud)

想一想,添加的那些按钮的点击事件应该是找到了回家的路子,叹息……

更新

ngTemplateOutlet 听起来很有趣

我们还可以使用 ngTemplateOutlet 指令获取模板本身并在页面上的任何位置实例化它:

检查中,仍然不知道如何...

transclusion angular

6
推荐指数
1
解决办法
1249
查看次数

这个模式有名字吗?

我基本上很确定这种模式必须存在并拥有一个名字......现在我称之为"门模式"......

这里是:

在我的网页的javascript中,我必须触发各种异步进程.我们不讨论如何完全异步js,但无论如何我必须触发2或3个AJAX调用,必须确定,UI构建已完成,依此类推.

只有这样,当所有这些过程完成后,我想要运行某个功能.而且恰好一次.

1: cropStore loaded()
2: resizeEvent()
3: productStore loaded()
Run Code Online (Sandbox Code Playgroud)

模式:在每个(成功)Ajax-load-callback结束时,GUI构建例程的结束等...我将相应的标志从false设置为true并调用gatedAction()

onEvent( 'load',
{
   ....  // whatever has to happen in response to cropStored, resized, etc...
   // lastly:
   f1 = true; //resp f2, f3, ...
   gatedAction();
}
Run Code Online (Sandbox Code Playgroud)

Gate将检查标志,如果仍未设置任何标志则返回,仅调用目标函数,如果所有标志(或我称之为:gate)都打开.如果我的所有异步前置条件都只调用一次gatedAction(),我希望我可以肯定,实际的targetFunction只调用一次().

gatedAction ()
{
   // Gate
   if ( ! f1) return;
   if ( ! f2) return;
   if ( ! f3) return;

   // actual Action ( <=> f1==f2==f3==true )
   targetFunction();
}
Run Code Online (Sandbox Code Playgroud)

在实践中它可靠地工作.旁注:我认为java-typical(不是js-typical)同步/ volatile问题可以被忽略,因为javascript并不是真正的多线程.Afaik一个函数永远不会停在它的中间,只是为了在同一个文件运行时授予另一个javascript函数...

所以,有人,这有名字吗?:-)

我经常需要这种模式,特别是对于复杂的后端UI ..(是的,我认为,我会将上面的对接丑陋的实现变成一个更可重用的javascript ...有一个gate数组和一个目标函数.)

javascript design-patterns gateway

5
推荐指数
1
解决办法
397
查看次数

htaccess - 条件重写和到期

嘿!

/static我的Apache 2.x服务器webroot中有一个文件夹.如果请求匹配

/static/<somename like [\S-_]+>.(png|jpg|css|js)/\d{8,15}
Run Code Online (Sandbox Code Playgroud)

例如

/static/bg.jpg/1335455634
Run Code Online (Sandbox Code Playgroud)

我想要两件事:

  • url应改写为/static/bg.jpg(摆脱时间戳)
  • 它将成为一个永不过期('到期2030年,最大年龄= 290304000,公共缓存,...)

如果请求不匹配,请求及其标题应该正常,不重写.理想情况下,/ static/*之外的任何请求都不应受到影响(尽管«巧合的尾随时间段»应该很少......)

我对FilesMatch/RewriteCond只有麻烦,所以我宁愿不发布我的不良尝试...(在我的机器上启用了genereal中的重写,我确实拥有发送缓存相关头文件的权限)

Dankeschön!

apache .htaccess url-rewriting cache-control mod-expires

5
推荐指数
1
解决办法
1708
查看次数

PHP:使用正则表达式进行标记(主要是那里)

我想标记格式化字符串(非常类似于printf),我想我只是遗漏了一点点:

  • %[number] [一个字母ctYymd]将成为一个标记²
  • $ 1 ... $ 10将成为代币
  • 所有其他(普通文本)成为一个标记.

我在regExp模拟器得很远.看起来应该这样做:

²update:现在使用#而不是%.(使用Windows命令行参数减少麻烦)

在此输入图像描述

如果你专注于通过管道连接的三个部分(作为 - 或者),这并不可怕,所以基本上它只是三个匹配.由于我想从头到尾进行匹配,因此我将事物包裹起来/^...%/并被一个(?:...可能重复一次或多次的不匹配组包围:

$exp = '/^(?:(%\\d*[ctYymd]+)|([^$%]+)|(\\$\\d))+$/'; 
Run Code Online (Sandbox Code Playgroud)

我的来源仍未提供:

$exp = '/^(?:(%\\d*[ctYymd]+)|([^$%]+)|(\\$\\d))+$/';
echo "expression: $exp \n";

$tests = [
        '###%04d_Ball0n%02d$1',
        '%03d_Ball0n%02x$1%03d_Ball0n%02d$1',
        '%3d_Ball0n%02d',
    ];

foreach ( $tests as $test )
{
    echo "teststring: $test\n";
    if( preg_match( $exp, $test, $tokens) )
    {
        array_shift($tokens);
        foreach ( $tokens as $token )
            echo "\t\t'$token'\n";
    }
    else
        echo "not valid.";
} // foreach
Run Code Online (Sandbox Code Playgroud)

我得到的结果却是:比赛失灵了.第一个%[数字] [字母]从不匹配,因此其他匹配双:

expression: /^((%\d*[ctYymd]+)|([^$%]+)|(\$\d))+$/ 
teststring: ###%04d_Ball0n%02d$1 …
Run Code Online (Sandbox Code Playgroud)

php regex tokenize

5
推荐指数
1
解决办法
255
查看次数