小编The*_*Fox的帖子

ie9上的AWS S3跨源请求失败

我正在尝试制作Web字体并将其部署在AWS S3上.

在除IE9之外的所有浏览器中都可以正常工作,它在尝试加载woff文件时表示跨源请求失败.

我已经在很多论坛上阅读了很多关于有问题的人,但是我找不到修复方法.

我认为这与S3上的CORS设置没有向IE9发送正确的数据或东西有关?

(适用于Firefox,Chrome,IE7,8等)

我看到解决问题的唯一建议是,启动EC2实例并为字体创建一个Web主机(完全矫枉过正!),另一个是将css文件命名为.php并在php中设置标头(但是这是愚蠢的).

任何人都知道如何(如果可能的话)解决这个问题?

谢谢

编辑

我的CORS配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

amazon-s3 webfonts internet-explorer-9

5
推荐指数
2
解决办法
2636
查看次数

是否可以在 ExUnit 测试中存根(模拟?)Ecto.UUID.generate?

我正在使用Ecto.UUID.generate在用户模型上创建随机令牌。

在我的ExUnit测试中,我想测试调用创建路由的控制器,但是因为令牌总是随机的,我无法确定性地测试结果。

理想情况下,我希望能够在我的测试中存根Ecto.UUID.generate以便它始终创建相同的UUID,以便我可以正确测试响应。

谢谢 :)

unit-testing elixir ecto

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

为什么 npm install 不能从 npm 上的包的分支正确构建依赖项?

我有一个使用旧版react-bootstrap 的项目

在我的 package.json 我有

"react-boostrap": "^0.13.3"
Run Code Online (Sandbox Code Playgroud)

那里有一个导致问题的错误,它的修复非常简单,所以我分叉了 repo,回滚到 v0.13.3 的提交:

git reset --hard <commit-hash>
Run Code Online (Sandbox Code Playgroud)

修复了我的 1 行,然后用力推回我的叉子。

然后我在主项目中更新了我的 package.json 以指向我的 fork:

"react-boostrap": "mygithubrepo/react-bootstrap"
Run Code Online (Sandbox Code Playgroud)

我删除了 node_modules 目录并运行sudo npm cache clear以确保一切都很好且新鲜。然后我跑了npm install它确实从 repo 中拉下了我的 react-bootstrap 版本。

但是,它现在下拉的版本与 node_modules 文件夹中的格式不同。从本质上讲,它似乎并没有构建该项目。

如果我使用:

"react-boostrap": "^0.13.3"
Run Code Online (Sandbox Code Playgroud)

然后 node_modules 文件夹包含构建的代码,如下所示:

+node_modules
--+react_bootstrap
----+utils
-----Acordion.js
etc.....
Run Code Online (Sandbox Code Playgroud)

但是当我将它指向我的 repo 的分叉版本时:

"react-boostrap": "mygithubrepo/react-bootstrap"
Run Code Online (Sandbox Code Playgroud)

然后我只得到节点模块中的源代码库结构(它似乎没有被构建)

+node_modules
--+react_bootstrap
----+docs
----+ie8
----+src
-------+utils
--------Acordion.jsx
........etc.....
----+tools
etc.....
Run Code Online (Sandbox Code Playgroud)

现在,当我引用 react bootstrap using require('react-bootstrap')then 它不起作用(因为尚未构建文件)。

那么我指向 npmjs 上的文件而不是 …

node.js npm react-bootstrap

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

在Poolboy工作程序(gen_server)中使用System.cmd会导致无提示失败

我有一个从泳池男孩工作人员衍生的功能

基本概述:

  • Phoenix Controller用数据调用Dispatcher
  • 调度程序将数据传递给Poolboy工作者
  • Poolboy worker使用给定的数据生成一个新进程
  • 新进程使用数据来调用系统命令(本例中为wget)

我遇到的问题是,当我运行ExUnit测试时,它一直顺利到达生成的进程,并且可以输出数据(使用IO.inspect)。

当我运行System.cmd(“ wget” ....时,我在运行ExUnit测试时在终端中看到了wget输出,因此该命令实际上正在运行,但是执行该命令后我没有执行任何操作。

所以在我的工人中,如果我这样做:

IO.puts "hello"
System.cmd("wget", opts)
IO.puts "world"
Run Code Online (Sandbox Code Playgroud)

然后我看到hello我看到了wget的输出,但是我没有看到world

如果我做其他类似的事情:

IO.puts "hello"
File.write("/tmp/temp.txt", "test")
IO.puts "world"
Run Code Online (Sandbox Code Playgroud)

然后我同时看到helloworld并且写入了一个文件。

是否有System.cmd我所缺少的特定信息导致情况如此?当它不在单独的进程中运行时,它可以很好地工作,因此它是进程与System.cmd的组合。

有任何想法吗?谢谢!

elixir phoenix-framework

3
推荐指数
1
解决办法
628
查看次数

postgres表分区在null日期

我想知道它是否可能(以及如果它可以如何去做)

基于日期字段为空或非空来对postgres 9.1中的表进行分区.

所以有效地,我有一个表,它变得非常大,我有一个"delete_on"日期,当项目被删除时,他们只是被标记为已删除.

这对于将它们存档并使活动表保持较小是理想的.

我在考虑一个表分区,只是有类似的东西

active(delete_on = NULL)

archive(deleted_on!= NULL)

然后当我对记录进行更新并将其设置为已删除时,它将被写入存档表.

我可以通过创建两个单独的表并编写代码来复制数据来手动完成,但是如果我可以直接将它放在数据库上,我会喜欢它.

有任何想法吗?

编辑:

主表

CREATE TABLE my_table (
    id              int not null,
    deleted         date not null,
    number1         int,
    number2         int
);
Run Code Online (Sandbox Code Playgroud)

分区

CREATE TABLE my_table_active (
  CHECK (deleted IS NULL)
) INHERITS (my_table);
CREATE TABLE my_table_archive ( 
  CHECK (deleted IS NOT NULL)
) INHERITS (my_table);
Run Code Online (Sandbox Code Playgroud)

触发功能

CREATE OR REPLACE FUNCTION my_table_insert_trigger()
RETURNS TRIGGER AS $$
BEGIN
    IF ( NEW.deleted IS NULL ) THEN
        INSERT INTO my_table_active VALUES (NEW.*); …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.1

2
推荐指数
1
解决办法
1605
查看次数