2012-01-30 61 views
1

我希望有人能够对我在上次部署中发现的问题提供一些见解。我有一个JavaScript页面的erb页面。直到我试图乘以数字时才有问题。出于某种原因,当我部署到服务器上,所有的星号的看上去像是命令的输出为什么星号在部署之后/之后被所有目录替换?

~$ ls/

所以,要澄清一下,为什么这个代码替换

<script type="text/javascript"> 
    a = b * 2; 
</script> 

成为

<script type="text/javascript"> 
    a = b bin boot dev etc lib sbin usr var 2; 
</script> 

当我部署后呈现?这现在令人沮丧。预先感谢任何想法或答案。

编辑 我检查了我的源代码,星号没有改变。当我尝试点击页面时,它们只会改变。问题不在于卡皮斯特拉诺。

+1

你是如何部署这个文件的?通过从源代码库复制它?通过使用'echo'? – tadman 2012-01-30 16:27:29

+0

复制我的源回购与capistrano。 [github上的Capistrano](https://github.com/jadb/capcake/wiki/Introduction-to-Capistrano) – Justin 2012-01-30 16:31:09

+0

这很令人担忧,像这样的东西最终会在shell中执行,或以某种方式插入。通常'git'方法只是逐字复制文件。 – tadman 2012-01-30 16:38:41

回答

1

这是由于壳牌扩张。如果当前目录是/

echo * 
bin boot dev etc home lib lib64 logs_backup media mnt opt proc root run sbin srv sys tmp usr var 

尝试

"a = b * 2" 

,如果你想计算,使用

a=$(echo "$b*2" | bc) 

(有可能比上述更好的办法。)
+0

对不起,我认为你误解了。当我部署到服务器时,我的源代码正在改变。我没有在终端输入任何*号码。 – Justin 2012-01-30 16:13:55

+1

显然你的源代码是在终端中执行的。 – Reactormonk 2012-01-30 16:14:55

+0

这怎么可能?我通过将javascript函数移至全局js页面来解决此问题。 – Justin 2012-01-30 16:27:17

相关问题