我正在开发一种用于检查网页中链接完整性的工具.
我注意到,如果有人在浏览器中访问给定的URL,那么各种Instagram URL将返回HTTP 500响应,并且会得到伴随预期资源的HTTP 200响应.
这是在请求常规Instagram URL时,就像浏览器用户那样,而不是在使用REST API时.
使用cURL的典型请求/响应:
curl -v http://instagram.com/p/YKTkxHBA-P/
* About to connect() to instagram.com port 80 (#0)
* Trying 54.225.159.246... connected
> GET /p/YKTkxHBA-P/ HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: instagram.com
> Accept: */*
>
< HTTP/1.1 500 Server Error
< Cache-Control: no-cache
< Content-Type: text/html
< Date: Tue, 15 Oct 2013 08:31:09 GMT
< Server: nginx
< Content-Length: 87
< Connection: keep-alive
<
<html><body><h1>500 Server Error</h1>
An internal server …Run Code Online (Sandbox Code Playgroud) 我想指定一个Servlet URL模式来匹配以斜杠("/")结尾的URL,而只是斜杠.
我理解这种模式
/example/path/*
将匹配的URL
http://example.com/example/path/
这似乎有效.但是,相同的模式也会匹配的URL
http://example.com/example/path/a/
http://example.com/example/path/b/
http://example.com/example/path/c/
我只是在寻找一个http://example.com/example/path/只匹配而不匹配的URL模式http://example.com/example/path/a/等等.
澄清:不允许以斜杠结尾的URL模式.
我是第一次安装Redmine后为Redmine配置电子邮件通知.
我创建/etc/redmine/default/email.yml并添加了:
# Outgoing email settings
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: smtp.example.com
port: 25
domain: example.com
authentication: :login
user_name: example
password: example
Run Code Online (Sandbox Code Playgroud)
访问http:// redmine /我遇到应用程序异常时:
"undefined method 'email_delivery=' for ActionMailer::Base:Class"
进一步指:
"/usr/lib/ruby/vendor_ruby/action_mailer/base.rb 433 in 'method_missing'"
我已按照http://www.redmine.org/projects/redmine/wiki/EmailConfiguration上的说明进行操作(我添加了相关的email.yml文件及相关设置),但不明白需要什么来克服此错误.
我究竟做错了什么?
为长篇介绍道歉 - 只是试图适当地设置场景以避免模棱两可和混乱.
Web应用程序已从基于浏览器的基于服务器端逻辑的接口变为基于浏览器的完全应用程序,而对服务器端逻辑的需求最小.可以通过识别清晰的Web应用程序来描述这种演变.
让我们暂时考虑两代:ajax之前和之后.当然还有其他因素,例如与CSS支持和访问控制标题有关的因素,但让我们从简单开始.
从无风格的无JavaScript简单系统开始,添加优雅降级的增强层并使用ajax包装,高响应性的现代应用程序完成是一项具有挑战性且容易出错的任务.这绝非易事.
对于Web应用程序可能看起来属于哪一代,取决于访问应用程序的方式.如果通过Lynx和最新一代应用程序通过FireFox 3.1访问,同样的Web应用程序似乎是第一代应用程序,中间有几个级别,具体取决于用于访问应用程序的用户代理.
根据用户代理的功能创建一个优雅降级的Web应用程序的问题,其中创建的利用当前浏览器功能的东西将恢复到大约十五年前面对Lynx时创建的东西的功能,这是非常困难的.
我无法想象桌面应用程序在操作环境中会出现这种差异.
能够利用Vista中的功能的单个可执行文件(与一组特定于操作系统的变体相对)在XP下运行时以及缺少某些Vista功能时可以很好地应对.为了降低与Web应用程序相当的距离,当在仅限命令行的环境(如DOS)中运行时,相同的桌面应用程序仍然必须运行,尽管不那么花哨.
在Lynx下运行它,它是第一代Web应用程序.在FireFox 3.1下运行相同,它是一个花哨,闪亮的当代网络应用程序.如果遇到这样的问题,你会认为它具有挑战性,棘手但可行.
在DOS下运行它,它是一个命令行应用程序.在Vista下运行它,它是一个花哨,闪亮的当代网络应用程序.如果遇到这样的问题,你会觉得它很疯狂.或者你呢?
桌面应用程序在操作环境中是否会像Web应用程序那样面临如此广泛的差异?
这个问题(方差的广度,而不是方差本身)是Web应用程序域所特有的,还是可以在桌面开发中找到?
FTP主要提供两种传输模式:ASCII和BINARY.
ASCII模式通常用于基于文本的内容,而BINARY模式通常用于按原样传输内容,尽管在BINARY模式下传输基于文本的内容通常是非常安全的.
传输的CGI脚本正确执行需要ASCII模式 - 以BINARY模式传输的CGI脚本通常会在执行时产生HTTP 500.
是否有任何其他类型的内容已知需要通过ASCII模式传输?在BINARY模式下传输时,哪些内容将"中断",在ASCII模式下传输时不会"中断"?
请考虑HTML5文档中的以下表单:
<form method="post" action="http://example.com/submit/">
<button name="confirm" value="1" type="submit">Confirm</button>
<button name="re-send" value="1" type="submit">Re-send code</button>
<button name="cancel" value="1" type="submit">Cancel change</button>
</form>
Run Code Online (Sandbox Code Playgroud)
使用Chrome,单击第一个按钮可生成请求的有效负载confirm=1.类似地,第二个按钮导致re-send=1第三个按钮cancel=1.
检查请求有效负载服务器端允许我确定单击三个按钮中的哪一个(假设请求有效负载中只有三个密钥中的一个).
在所有情况下,未单击的按钮的键:值对将从请求有效内容中排除.这非常有用.
此行为(未单击的按钮键:值对是否从请求有效负载中排除)标准?
我最近遇到了一个包含以下标记行的网页:
<script src="resource://ember-inspector-at-emberjs-dot-com/ember-inspector/data/in-page-script.js"></script>
Run Code Online (Sandbox Code Playgroud)
请注意,URL中的方案是"资源",并且URL不适用于可通过Internet访问的内容.
这不是我以前遇到的URL方案.尽管对此事进行了一些搜索,但我找不到有关该方案使用的任何信息.
"资源"计划的目的是什么?如果我是浏览器,我会怎么做?
我正在使用url映射将URL目录结构转换为站点内的类别,目前使用:
class UrlMappings {
static excludes = ['/css/*','/images/*', '/js/*', '/favicon.ico']
static mappings = {
"/$category1?/$category2?/$category3?/"(controller: 'category')
"500"(view:'/error')
"404"(view:'/notFound')
}
}
Run Code Online (Sandbox Code Playgroud)
目前,这支持三个层次的深层次.我希望能够在N> = 1的情况下支持N级深度.
怎么能实现这一目标?
Symfony2应用程序通常具有一组实体.Doctrine EntityManager通常用于获取和持久化这些实体.
实体在整个应用程序中的多个位置使用; 对于许多实体和每个实体,包装给定实体的处理以及在服务中提取/持久化是有意义的.
例如,对于一个User实体,可能有一个UserServicewith fetchUser($user_id)和persistUser(User $user)方法(或者只是fetch()和persist()方法,这只是一个例子.
应用程序最终可以获得许多面向实体的服务,用于获取和持久化实体.这些服务的接口类似,处理的实体类型不同.
应用程序可以包含许多面向实体的服务似乎是一种常见的情况.因此,命名和构建此类服务的问题是一个常见问题.
对于新的应用程序需要的,例如,一个基地的创建EntityService和孩子UserService,WidgetService和ProductService班感觉重复,如用这样的处理方面应该是一个解决问题的方法.
是否有将此类实体管理相关服务引入Symfony应用程序的最佳实践?
这感觉它应该是一个已经解决的问题,可能会有一个很好的设计模式.
是否有建议遵循的命名约定?
我在不同的应用程序中观察到,选择"UserManager"和"UserService"作为服务名称.是否有普遍的公约?
运行会php app/console doctrine:migrations:diff根据需要生成一个新的迁移类,以将当前数据库模式转换为由实体更改指定的模式。
此示例显示了用于创建fos_user表的此类生成的类:
class Version20120712145445 extends AbstractMigration
{
public function up(Schema $schema)
{
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");
$this->addSql("CREATE TABLE fos_user (id INT AUTO_INCREMENT NOT NULL, ...);
}
public function down(Schema $schema)
{
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");
$this->addSql("DROP TABLE fos_user");
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,此生成的迁移绑定到特定的数据库服务器,在此实例中为MySQL。
由于(预期的)性能优势减少了测试执行时间,因此我想在测试环境中使用内存中的sqlite数据库。
我可以采用上面生成的SQL并将其转换为$table = $schema->createTable(); $table->addColumn();等效项,但是这样做既费时,又由于对SQL的人工翻译不佳而导致引入错误。
doctrine:migrations:diff命令能否创建平台无关的迁移代码,而不是上面特定于平台的SQL?
symfony ×2
doctrine-orm ×1
firefox ×1
ftp ×1
grails ×1
html ×1
html5 ×1
instagram ×1
java ×1
redmine ×1
ruby ×1
servlets ×1
url ×1
url-mapping ×1
url-pattern ×1
url-scheme ×1
web.xml ×1