相反,我相信一个简单的问题是,当您的网络服务器上已安装nginx时,是否可以安装乘客?
如果答案是肯定的,我已经执行了以下操作:
在这个时刻,我已经安装了nginx(对于我的PHP应用程序),接下来我检查了乘客的git存储库:
mkdir /repositories
cd /repositories/
git clone https://github.com/FooBarWidget/passenger.git
cd passenger/
Run Code Online (Sandbox Code Playgroud)
然后将此代码段添加到 /etc/nginx/conf/nginx.conf
http {
...
passenger_root /repositories/passenger;
passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby;
...
}
Run Code Online (Sandbox Code Playgroud)
但是,当我想重新启动nginx时,我收到以下错误:
* Starting Web Server nginx
nginx: [emerg] unknown directive "passenger_root" in /etc/nginx/nginx.conf:19
Run Code Online (Sandbox Code Playgroud)
最后我说,我还需要设置一些配置,让nginx意识到我们正在使用乘客.
我的服务器阻止
server {
listen 80;
server_name rails.kreatude.com;
root /srv/www/my_test_app;
passenger_enabled on;
}
Run Code Online (Sandbox Code Playgroud) 我有一个12,000多个数字的列,包括正数和负数,在Excel电子表格中从最高到最低排序.
是否有一种简单的方法可以将此范围划分为十分位数?
我有一个问题让我有些头疼。我正在尝试打印报告并使用 print.css 正确格式化它,但它每次都完全忽略我的 css。以前有人遇到过这个问题吗?我确保 CSS 文件位于正确的目录中,等等,但仍然没有运气。
这是我的模板:
注意:我使用 javascript 来控制打印按钮,并且在 javascript 中包含了 CSS 链接。我也尝试过将其仅放在 HTML 页面上,但这没有帮助。
...
<script type="text/javascript">
function printContent(id){
str=document.getElementById(id).innerHTML
newwin=window.open('','printwin','left=100,top=100,'+
'width=900,height=400, scrollbars=1')
newwin.document.write('<HTML>\n<HEAD>\n')
newwin.document.write('<TITLE>Print Page</TITLE>\n')
newwin.document.write('<link rel="stylesheet" type="text/css" '+
'href="/media/css/print.css" media="print"/>\n')
newwin.document.write('<script>\n')
...
Run Code Online (Sandbox Code Playgroud)
现在,对于这个项目,我使用 Ubuntu 10.10 和 Firefox 7。如果这有帮助的话。
编辑
我安装了 Firefox 的 Web 开发人员工具栏。它允许您以不同的媒体方式查看页面。现在,当我单击打印时,它会显示我所有的样式更改,但当我打印时,它不会遵循它们。
public Object getValue()
{
ValueItem valueItem = null;
Object returnValue = null;
if(this.value instanceof StringValueImpl)
{
valueItem = (StringValueImpl) this.value;
}
else if(this.value instanceof ListValueImpl)
{
valueItem = (ListValueImpl) this.value;
}
else if(this.value instanceof MapValueImpl)
{
valueItem = (MapValueImpl) this.value;
}
if(valueItem!=null)
returnValue = valueItem.getValue();
return returnValue;
}
Run Code Online (Sandbox Code Playgroud)
ValueItem
是的interface
这是由执行ListValueImpl
,MapValueImpl
等等.我想返回值是一个object
.代码工作正常但我想知道这是否可以以任何方式改进?
我有一个Oracle数据库,像许多人一样,有一个包含传记信息的表.在其中,我想以"自然"的方式按名称搜索.
该表有forename
和surname
字段,目前,我正在使用这样的东西:
select id, forename, surname
from mytable
where upper(forename) like '%JOHN%'
and upper(surname) like '%SMITH%';
Run Code Online (Sandbox Code Playgroud)
这可行,但它可能非常慢,因为此表上的索引显然无法解释前面的通配符.此外,用户通常会根据他们通过电话告诉他们的内容来搜索人员 - 包括大量的非英文姓名 - 所以最好也进行一些语音分析.
因此,我一直在试验Oracle Text:
create index forenameFTX on mytable(forename) indextype is ctxsys.context;
create index surnameFTX on mytable(surname) indextype is ctxsys.context;
select score(1)+score(2) relevance,
id,
forename,
surname
from mytable
where contains(forename,'!%john%',1) > 0
and contains(surname,'!%smith%',2) > 0
order by relevance desc;
Run Code Online (Sandbox Code Playgroud)
这具有使用Soundex算法以及全文索引的优点,因此它应该更有效.(虽然,我的轶事结果显示它很慢!)我对此的唯一担忧是:
首先,需要以一些有意义的方式刷新文本索引.使用on commit
速度太慢,可能会干扰前端软件(我无法控制)与数据库的交互方式; 所以需要一些思考......
Oracle返回的结果并不是非常自然地排序; 我不太确定这个score
功能.例如,我的开发数据显示"乔纳森彼得杰森史密斯"在顶部 - 罚款 - 但"简玛格丽特辛普森"与"约翰特伦斯史密斯"处于同一水平
我认为删除前面的通配符可能会提高性能而不会降低结果,因为在现实生活中,您永远不会在名称中间搜索块.但是,否则,我对这些想法持开放态度......这种情况必须在恶心的情况下实施!任何人都可以建议一个更好的方法来处理我现在正在做/考虑的事情吗? …
我被要求对朋友的公司网站进行一些更改.它在每个页面上使用一个PHP插入文件作为标题,这很有用,因为导航等在每个页面上都是相同的.
以下代码在每个页面上指定公司徽标:
<div id="logo">
<a href="/"></a>
</div>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,href
在的a
标签包含只有一个正斜杠/
,因为它的路径.
链接工作正常,并连接到index.php
页面.
我想知道它是怎么做到的?看作域的默认页面是由服务器配置文件控制的,这是一个链接到默认页面指定为的快捷方式吗?
我以前从未见过这样做过,而且我似乎无法找到任何有关它的文件.我感谢您提供的任何信息.
在Solr(3.3)中,是否可以通过字母逐字母搜索EdgeNGramFilterFactory
并且对短语查询敏感?
例如,我正在寻找一个字段,如果包含"contrat informatique",将在用户输入时找到:
目前,我做了这样的事情:
<fieldtype name="terms" class="solr.TextField">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
</analyzer>
</fieldtype>
Run Code Online (Sandbox Code Playgroud)
...但是短语查询失败了.
当我在solr admin中查看模式分析器时,我发现"contrat informatique"生成了以下标记:
[...] contr contra contrat in inf info infor inform [...]
Run Code Online (Sandbox Code Playgroud)
因此查询使用"contrat in"(连续令牌),但不使用"contrat inf"(因为这两个令牌是分开的).
我很确定任何类型的词干都可以用短语查询,但我找不到正确的过滤器标记器来使用之前EdgeNGramFilterFactory
.
有没有办法使用JavaScript/PHP获得正在上传的文件的实际创建/修改时间?
至于JavaScript,我已经研究了很多,尝试了很多代码,但没有运气(或许试图做出可能的不可能).
至于PHP,使用filectime ()和filemtime(),它只显示文件上传的日期/时间,而不是文件在源上实际创建/修改的时间.
简而言之,我想要的是在上传之前/期间/之后(尽可能地)检查文件的m时间,并决定是否将文件存储在服务器上,并将其报告回客户端.
在Excel 2003中,我有一个位置文件,我希望空格填充"〜"的分隔符,总共15个字符.如何确保每个名字前面都有前缀为"〜"的15个字符,以便填充空格.我尝试在自定义格式模式下执行此操作,但它无法正常工作.
例子:
SALLY~~~~~~~~~~
TOM~~~~~~~~~~~~
FRED~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
等等...
我有以下课程
class Product : IEquatable<Product>
{
public Guid Id { get; set; }
public bool Equals(Product other)
{
return Id.Equals(other.Id);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试创建列表项的唯一列表,如下所示
Guid a = Guid.NewGuid();
List<Product> listA = new List<Product>();
listA.Add(new Product(){Id = a});
List<Product> listB = new List<Product>();
listB.Add(new Product()
{
Id = a
});
Debug.Assert(listA.Union(listB).Count()==1);
Run Code Online (Sandbox Code Playgroud)
返回两个项目,直到我覆盖object.Equals方法,一旦我这样做,我的代码如下
class Product : IEquatable<Product>
{
public Guid Id { get; set; }
public bool Equals(Product other)
{
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
return other.Id.Equals(Id);
} …
Run Code Online (Sandbox Code Playgroud)