我们有一个包含一些 .svg 文件的网站。它使用 CloudFront 作为静态站点存储在 S3 存储桶中。当我们最初将文件上传到存储桶时,所有 .svg 文件都获得了错误的Content-Type属性,它们获得了binary/octet-stream而不是image/svg+xml. 我看到很多人都遇到过这个问题。不管出于什么原因,我们将它们转换回image/svg+xml,但浏览器仍然将它们下载为binary/octet-stream.
几点注意事项:
当我们将浏览器指向默认的 s3 存储桶网站 ( http://my-kule-site.s3-website-us-east-1.amazonaws.com ) 时,所有 svg 文件都会显示正确的内容类型。只有当我们通过 CloudFront 访问该网站时才会出现问题。
当我卷曲 svg 文件而不指定任何标题时,它会返回正确的Content-Type.
$ curl -i https://my-kule-site.com/img/whatup.svg
HTTP/2 200
content-type: image/svg+xml
content-length: 3342
date: Tue, 13 Aug 2019 16:48:48 GMT
last-modified: Mon, 12 Aug 2019 14:39:35 GMT
x-amz-version-id: ZJRubnV_5a0U53bM1JHqLgdkklu.dsLA
etag: "1870f06100c651976bd353d0b620a810"
server: AmazonS3
x-cache: Miss from cloudfront
via: 1.1 64b0aa0bda8aeed651e25c63b33d01cb.cloudfront.net (CloudFront)
x-amz-cf-pop: DFW53-C1
x-amz-cf-id: UYKuqWq1DbSGzlhsWN08cCaFJi7-ZzhNIjNiIOR5Wqp4xJq4enWMCQ==
Run Code Online (Sandbox Code Playgroud)
但是,当我使用 …
我有一个与MySQL数据库对话的旋风Web服务.如果暂时没有活动(我猜的时间超过8小时),我会在重新启动Web服务时收到以下错误:
_mysql_exceptions.OperationalError :( 2006,'MySQL服务器已经消失')
我看过这篇关于cp_reconnect的帖子,我在创建连接池时实现了这个:
pool = adbapi.ConnectionPool("MySQLdb", host=self.host, user=self.user,
passwd=self.password, db=self.database, cursorclass=MySQLdb.cursors.DictCursor,
cp_reconnect=True)
Run Code Online (Sandbox Code Playgroud)
我本来以为这会修复它,似乎有一段时间了,但是现在我看到服务器上没有活动一段时间后"MySQL服务器已经消失"错误了.
我已经阅读了关于wait_timeout的这个MySQL文档,我可以用我想的那样修复它,但是为什么cp_reconnect功能对我不起作用?我正在解释adbapi文档意味着如果您指定cp_reconnect参数,那adbadpi将处理MySQL发送的错误并为您重新尝试查询.所以基本上你不必直接在代码中处理错误.我误解了吗?
在 node.js 中使用 express 时,您可以像这样控制公共资源的缓存头:
app.use(express.static(path.join(__dirname, 'public'), { maxAge: 31557600000 }));
Run Code Online (Sandbox Code Playgroud)
这会将 public 文件夹下的所有内容设置为静态可用,缓存超时为 1 年。但是如果我想为公共下的其他文件设置不同的超时值怎么办?假设我在 public/images/icons 下有一些图像,我希望在 1 年内具有较小的值?我尝试添加第二个对 static 的调用,如下所示:
app.use(express.static(path.join(__dirname, 'public'), { maxAge: 31557600000 }));
app.use(express.static(path.join(__dirname, 'public/images/icons'), { maxAge: 12345 }));
Run Code Online (Sandbox Code Playgroud)
但它没有用。它似乎只是忽略了第二个语句。想法?
我正在为节点项目使用sequelize。它连接到一个 Postgres 数据库,它包含一个带有DATE字段的表(与 不同TIMESTAMP WITH TIMEZONE,DATE没有时间数据)。
在代码中,我使用 javascriptDate对象对日期进行建模,该对象将时间存储为 UTC 午夜。当我使用该Date对象将记录插入到表中时,sequelize 显然首先将其覆盖到本地时间,因为记录总是落后 1 天。因此,如果我想将 2000-10-31 插入到数据库中,我最终会得到 2000-10-30。我在UTC-5。
如何告诉 sequelize 在插入数据库之前不要将日期转换为本地时间?
这是一些示例代码。如果你想自己运行它,我还创建了一个存储库。
var Sequelize = require('sequelize');
const sequelize = new Sequelize('testdb', 'postgres', '???', {
host: 'localhost',
dialect: 'postgres'
});
TestTable = sequelize.define('date_test',
{
id: {
primaryKey: true,
type: Sequelize.INTEGER,
autoIncrement: true
},
someDate: {
field: 'some_date',
type: Sequelize.DATEONLY
}
},
{
timestamps: false,
freezeTableName: true
}
);
// …Run Code Online (Sandbox Code Playgroud) 我有一些由git管理的源代码,我想推送到Heroku.源代码包含多个不同的产品,其中一些产品将拥有自己的heroku实例.所以像这样:
src/
lib-files/
app1/
app2/
app3/
other-files/
package.json
Run Code Online (Sandbox Code Playgroud)
所以在heroku中,我有app1和app2的实例.这两个都依赖于./lib-files和package.json,但不依赖于app2或app3或其他文件.
我真的不想将包含所有文件的整个git存储库推送到每个应用程序的heroku.换句话说,我不希望app1实例包含app2或app3或其他文件的代码,因为它有很多不需要的数据,并且需要永远复制它.
我通过为每个应用程序创建新的git repos来解决这个问题(一个只包含app1需要的东西,一个用于app2等),然后将这些个人回购推送到heroku.这可行,但似乎有点hacky因为我有我必须管理的所有其他额外的存储库.此外,如果其他开发人员希望能够推送到heroku我需要让他们可以使用这些回购,也许可以通过检查他们到git(似乎奇怪).
有什么好办法来实现这个目标?
更新:
如果我创建了heroku repos所以他们只为每个应用程序包含适当的东西然后让heroku成为那些repos的主要远程(而不是github)怎么办?我仍然会有多个存储库来处理,但至少所有开发人员都有一个标准的位置来克隆它们(源代码仓库在github中,而heroku部署仓库在heroku中).对此的想法?
我知道使用sinon.js可以测试间谍被多次调用:
sinon.assert.calledTwice(mySpy.someMethod);
Run Code Online (Sandbox Code Playgroud)
您可以测试是否使用某些参数调用了间谍:
sinon.assert.calledWith(mySpy.someMethod, 1, 2);
Run Code Online (Sandbox Code Playgroud)
但是,如何将它们组合起来以测试某个方法被调用了特定次数的特定参数呢?理论上是这样的:
sinon.assert.calledTwiceWith(mySpy.someMethod, 1, 2);
Run Code Online (Sandbox Code Playgroud) 我有一个 SQL 查询,我试图将其转换为实体框架表达式。连接子句之一对 null 进行了测试,我不确定如何在 EF 中表达它。这是 SQL 查询,注意联接实际上有多个条件:
SELECT T1.*
FROM product T1
INNER JOIN T2 ON T1.pk1 = T2.fk1
INNER JOIN T3 ON T2.pk2 = T3.fk2 AND T3.x IS NULL <-- this is the issue
Run Code Online (Sandbox Code Playgroud)
出于对简单事情的盲目希望,我尝试了这个 EF 表达式:
from t1 in ctx.T1
join t2 in ctx.T2 on t1.pk1 equals t2.fk1
join t3 in ctx.T3 on t2.pk2 equals t3.fk2 && t3.x == null
select t1
Run Code Online (Sandbox Code Playgroud)
编译器不喜欢这&& t3.x == null部分。它说
错误 CS0019 运算符“&&”不能应用于“int”和“bool”类型的操作数
所以我尝试了这个(注意 T3.x 是一个可为空的日期字段):
from t1 …Run Code Online (Sandbox Code Playgroud) 我在 macOS 10.15.3 上运行 Chromium 85。
我正在尝试使用Chromium 提供的各种命令行开关中的一些,但它们似乎都没有任何效果。例如
./Chromium --ignore-gpu-blacklist
Run Code Online (Sandbox Code Playgroud)
当它启动并进入chrome://flags页面时,该设置尚未启用:
我已经在多个版本的 Chromium 以及 Windows 上尝试过,结果相同。我似乎无法启用其中任何一个。
我确实在这个页面上注意到它说
请注意,如果您查看 chrome://flags 以查看命令行选项是否处于活动状态,则可能无法准确反映状态。检查 chrome://version 以获取当前实例中使用的完整命令行。
所以也许它正在工作,只是没有办法验证?检查chrome://version页面并不足以判断某个功能是否已成功启用。它只是回显您传递给命令行的内容。
我有一些如下所示的 npm 脚本:
"scripts": {
"exec:dev": "export NODE_ENV=development && npm run exec",
"exec:stage": "export NODE_ENV=stage && npm run exec",
"exec:prod": "export NODE_ENV=production && npm run exec",
"exec": "node myapp.js"
}
Run Code Online (Sandbox Code Playgroud)
我想传递一些命令行参数,myapp.js但这不起作用:
npm run exec:prod -- -a 123 -b 456
Run Code Online (Sandbox Code Playgroud)
这显然是由于exec:prod脚本正在调用exec脚本并且显然没有传递命令行参数。有什么方法可以在保留嵌套脚本调用的同时实现此目的吗?
Node对TypeScript生成的Javascript中的某些内容不满意,我不知道为什么。这是代码
人员:
export module Models {
export class Person {
id: number;
firstName: string;
lastName: string;
constructor(f: string, l: string) {
this.firstName = f;
this.lastName = l;
}
public saySomething(): void {
console.log("my name is %s %s", this.firstName, this.lastName);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Database.ts:
import P = module("Person");
export module Database {
export class DB {
public findPerson(id: number): P.Models.Person {
return new P.Models.Person("a", "b");
}
}
}
Run Code Online (Sandbox Code Playgroud)
测试:
var D = require("./DB");
var db = new D.Database.DB();
var p = …Run Code Online (Sandbox Code Playgroud) node.js ×3
command-line ×2
amazon-s3 ×1
args ×1
caching ×1
chromium ×1
content-type ×1
express ×1
git ×1
heroku ×1
join ×1
mysql ×1
npm ×1
python ×1
sequelize.js ×1
sinon ×1
sql ×1
svg ×1
twisted ×1
typescript ×1
unit-testing ×1
utc ×1