小编ric*_*ard的帖子

如何清除画布以进行重绘

在尝试复合操作和在画布上绘制图像后,我现在正在尝试删除图像和合成.我该怎么做呢?

我需要清除画布以重绘其他图像; 这可以持续一段时间所以我不认为每次绘制一个新的矩形将是最有效的选择.

javascript html5 canvas composite html5-canvas

945
推荐指数
16
解决办法
82万
查看次数

从正则表达式重定向中排除目录

我希望将带有下划线的所有URL重定向到它们的虚线等效项.

/nederland/amsterdam/car_rental变成了/nederland/amsterdam/car-rental.为此我使用了这里描述的技术:如何用Nginx替换下划线.所以我的位置块匹配到:

location ~ (_) 
Run Code Online (Sandbox Code Playgroud)

但我只是想这样做对的URL 不是/admin命名空间.为了实现这一点,我尝试将正则表达式与否定查找相结合:正则表达式匹配不包含单词的行?.该位置现在匹配:

(?=^(?!\/admin))(?=([^_]*))
Run Code Online (Sandbox Code Playgroud)

Rubular报告字符串/nederland/amsterdam/car_rental以匹配正则表达式,/admin/stats_dashboard而不匹配,就像我想要的那样.但是,当我将此规则应用于nginx配置时,该站点最终会出现重定向循环.有什么我忽略的吗?

更新:我实际上并不想重写/admin命名空间中的任何内容.下划线到破折号重写应仅在不在/admin命名空间中的所有URL 上进行.

regex nginx

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

setTimeout里面的for循环

我想要一个字符串出现字符转换为以下代码:

function initText()
{
    var textScroller = document.getElementById('textScroller');
    var text = 'Hello how are you?';

    for(c = 0; c < text.length; c++)
    {
        setTimeout('textScroller.innerHTML += text[c]', 1000);
    }
}

window.onload = initText;
Run Code Online (Sandbox Code Playgroud)

它不起作用..我做错了什么?

javascript loops settimeout

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

将rails_admin与rails_api一起使用

我最初在rails_api GitHub上发布了这个问题,但现在由于不活动而在此发布.

我正在尝试使用rails_adminRails 5 API应用程序.我添加了额外的ActionController模块,以至于我可以使用有效的rails_admin面板或工作API请求.问题似乎是rails_admin依赖于ActionView::Layouts,包含后会导致API请求出现问题.

的Gemfile:

gem 'rails', '>= 5.0.0.beta3', '< 5.1'
...
gem 'rack-pjax', github: 'afcapel/rack-pjax'
gem 'remotipart', github: 'mshibuya/remotipart'
gem 'kaminari', github: 'amatsuda/kaminari', branch: '0-17-stable'
gem 'rails_admin', github: 'sferik/rails_admin'
Run Code Online (Sandbox Code Playgroud)

我配置我的应用程序使用ActionDispatch::Flash:

module MyApp
  class Application < Rails::Application
    ...
    config.middleware.use ActionDispatch::Flash
  end
end
Run Code Online (Sandbox Code Playgroud)

我为Rails API,ApplicationController 配置了额外的模块:

class ApplicationController < ActionController::API
  include Knock::Authenticatable
  include Pundit

  # RailsAdmin support
  include AbstractController::Helpers
  include ActionController::Flash
  include ActionController::RequestForgeryProtection
  include ActionController::MimeResponds
  include ActionController::HttpAuthentication::Basic::ControllerMethods
  include …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionview rails-admin rails-api ruby-on-rails-5

9
推荐指数
1
解决办法
2296
查看次数

动态加载从gem到磁盘引擎的I18n转换

我创建了一个gem(TranslationsGem),我在多个项目(引擎和Rails应用程序)中使用它.这个宝石设置了几个加载到I18n后端的哈希.

一种方法#store_dynamic_translations设置了几个加载到I18n后端的哈希值.它基本上是这样的:

I18n.backend.store_translations(:en, { test: { property: 'value' } })
Run Code Online (Sandbox Code Playgroud)

我的测试确认方法和翻译加载正常.但是我不能让它在主机引擎和Rails应用程序中工作.在我的测试环境中,我必须在my中执行该方法test_helper以确保正确加载转换.在测试环境之外,我似乎无法使其正常工作.我可以验证该方法是否已执行,但未加载转换.

我已经尝试了好几个小时,比如在Engine初始化程序中执行方法并使用ActiveSupport挂钩.在主机Rails应用程序中,我尝试#store_dynamic_translations在初始化程序中执行,但无济于事.

奇怪的是,如果我#store_dynamic_translations在我的Rails应用程序控制器或视图中执行它,它就可以工作.有没有办法在app启动时设置它?


编辑:我已经设置了一个包含当前设置示例存储库.

  1. 一个Gem,它动态地将翻译存储到I18n后端.

  2. 一个Rails引擎加载gem并且应该有它的翻译

有问题的测试中,取消注释该MyI18n::Translations.store_dynamic_translations指令使测试通过.但我认为应该可以在引擎初始化程序中做到吗?

ruby ruby-on-rails internationalization i18n-gem

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

Nginx将http:// www和裸http/https重定向到https:// www

我想重定向以下域中的所有流量:

  • http://domain.com
  • http://www.domain.com
  • https://domain.com

  • https://www.domain.com

我有上述域名的SSL证书.它托管了一个由Passenger提供服务的Rails应用程序.

要完成裸域重定向,我在DNSimple帐户中设置了URL重定向:

URL domain.com  3600  https://www.domain.com
Run Code Online (Sandbox Code Playgroud)

我的服务器块如下(灵感来自Nginx no-www to www和www to no-www等):

server {
    listen          80;
    listen          443;
    server_name     domain.com;

    ssl                             on;
    ssl_certificate                 /etc/ssl/domain-ssl.crt;
    ssl_certificate_key             /etc/ssl/domain.key;
    ssl_session_timeout             5m;
    ssl_protocols                   SSLv2 SSLv3 TLSv1;
    ssl_ciphers                     HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers       on;

    server_tokens   off;
    access_log      /dev/null;
    error_log       /dev/null;

    return 301 https://www.domain.com$request_uri;
}

server {
    listen          443 ssl;
    server_name     www.domain.com;

    root                            /home/deploy/app/current/public;
    passenger_enabled               on;
    passenger_app_env               production;
    passenger_set_cgi_param         HTTP_X_FORWARDED_PROTO https;

    ssl                             on;
    ssl_certificate                 /etc/ssl/domain-ssl.crt;
    ssl_certificate_key             /etc/ssl/domain.key;
    ssl_session_timeout             5m;
    ssl_protocols                   SSLv2 …
Run Code Online (Sandbox Code Playgroud)

dns ssl https nginx dnsimple

7
推荐指数
2
解决办法
3875
查看次数

用PHP替换'字符

我很难尝试替换这个奇怪的右单引号字符.我正在使用这样的str_replace:

str_replace("’", '\u1234', $string);

看起来我无法弄清楚报价究竟是什么字符.即使我直接从PHPMyAdmin复制粘贴它仍然无法正常工作.我不得不以某种方式逃脱它吗?

角色: http ://www.lukomon.com/Afbeelding%204.png

  • MySQL Charset:UTF-8 Unicode(utf8)
  • MySQL排序规则:utf8_unicode_ci
  • <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

编辑:它原来是一个微软左单引号,我可以用Phill Paffords评论中的这个函数替换.不确定我现在要标记哪个答案..

php replace special-characters

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

透明9patch图像:线条显示通过

我得到了一个透明的9patch图像,其中9patch线显示低谷.

这是输出: 在此输入图像描述

显然我不希望水平线可见.

这就是我创建9patch的方式:

在此输入图像描述

这是应用程序中使用的最终图像: 在此输入图像描述

AFAIK 9patch是正确的.为了使水平线消失,我需要更改什么?

android nine-patch

4
推荐指数
1
解决办法
2478
查看次数

悬停时原型Element.toggle,使用childElements禁用

我遇到以下情况:

我有一个像这样的表结构:

<tr>
  <td>text</td>
  <td>text</td>
  <td>text</td>
  <td><a href="#"><img src="#" /></td>
  <td><span style="display:hidden"><a href="#">e</a> <a href="#">e</a></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下函数执行的操作是在表格行悬停时显示隐藏的跨度.然而,每当我将childElements悬停在tr:锚定图像和跨度本身时,它就会出现怪癖.我怎样才能解决这个问题?

// Reveal item options on hover
$$('#financedata tr').invoke('observe', 'mouseover', function(event) {
    event.target.up().childElements()[4].childElements()[0].toggle();                   
}); 
$$('#financedata tr').invoke('observe', 'mouseout', function(event) {
    event.target.up().childElements()[4].childElements()[0].toggle();
}); 
Run Code Online (Sandbox Code Playgroud)

children hover prototypejs

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

合并JavaScript对象

在SO上读到了另一个类似的问题,但在那个问题上没有一个明确的答案.

我得到了一些看起来像这样的JavaScript对象:

var moveJSON = {
    'name'      : move[0].innerHTML,
    'info'      : move[1].innerHTML,
    'power'     : move[2].innerHTML,
    'accuracy'  : move[3].innerHTML,
    'type'      : move[4].innerHTML,
    'category'  : move[5].innerHTML,
    'pp_min'    : move[6].innerHTML,
    'pp_max'    : move[7].innerHTML
}
Run Code Online (Sandbox Code Playgroud)

我需要将它们合并到一个对象中,它将通过AJAX发送给PHP.但首先:将它们合并为单个对象(数组)的最佳方法是什么?

javascript string-concatenation

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

使用PHP将Curl检索的HTML字符串转换为JSON,并使用AJAX

我正在使用Javascript(AJAX; Prototype)和PHP(Curl)构建一个scraper.该URL通过AJAX提供给PHP/Curl.

响应是一个巨大的HTML字符串.我想将JSON中的字符串发送到Javascript,以便我可以处理它.

如果我发送原始的responseText它工作正常,html(字符串)get在我的屏幕上呈现.但是,当我尝试PHP的json_encode()函数时,我得到'null'.

我究竟做错了什么?或者有更好的方法将HTML字符串转换为JSON吗?我正在运行PHP5.3,尝试了JSON_FORCE_OBJECT但没有运气..请帮助我,我一直在敲打这个太久了... :(

这是当前的PHP代码(如果我删除它工作的json_encode函数):

$url = $_GET['url'];

$ch = curl_init() or die(curl_error()); 

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$scrape = curl_exec($ch) or die(curl_error()); 

echo json_encode($scrape);
echo curl_error($ch);

curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

javascript php ajax json curl

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

为什么Cloudfront会在几小时内从缓存中驱逐对象?

Cloudfront配置为缓存来自我们应用的图像.我发现这些图像很快就从缓存中逐出.由于图像是动态生成的,因此对于我们的服务器来说这是非常激烈的.为了解决这个问题,我设置了一个测试用例.

原始标题

该图像是由我们的原始服务器送达正确Last-ModifiedExpires头.

原始标题

Cloudfront缓存行为

由于该站点仅为HTTPS,因此我将其设置Viewer Protocol PolicyHTTPS.Forward Headers被设置为NoneObject CachingUse Origin Cache Headers.

cloudfront缓存行为设置

初始图像请求

我在11:25:11请了一张照片.这返回了以下状态和标题:

  • 代码:200(OK)
  • 缓存:没有

  • 到期日:2016年9月29日星期四09:24:31 GMT

  • 最后修改时间:2015年9月30日星期三09:24:31 GMT
  • X-Cache:来自云端的小姐

初始请求标头

后续请求

稍后重新加载(11:25:43)返回图像:

  • 代码:304(未修改)
  • 缓存:是的

  • 到期日:2016年9月29日星期四09:24:31 GMT

  • X-Cache:来自云端

后续请求标头

几个小时后的请求

差不多三个小时后(14:16:11)我去了同一页面,图片载满了:

  • 代码:200(OK)
  • 缓存:是的

  • 到期日:2016年9月29日星期四09:24:31 GMT

  • 最后修改时间:2015年9月30日星期三09:24:31 GMT
  • X-Cache:来自云端的小姐

在此输入图像描述

由于图像仍然由浏览器缓存,因此可以快速加载.但我无法理解Cloudfront如何无法返回缓存的图像.因此,应用程序必须再次生成图像.

我读到Cloudfront在闲置几天后会从其缓存中驱逐文件.如上所述,情况并非如此.怎么会这样?

caching image amazon-cloudfront

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