0

好吧,这真的很奇怪。我不是 js proffesional 所以调试这花了我将近 2 个小时。发生的是我正在用这个主题设计一个自定义 cms:

http://templates.tricyclelabs.com/adminica/login.php

在我完成它之后,在 localhost 上一切正常。上传到服务器后,那个 IPhone 滑块不起作用。调试后,我看到我的服务器正在破坏 javascript 文件,所有内容都在一行中,这意味着如果您使用“//”,所有内容都会被注释:

$(function() {  // Form inputs
    $("fieldset > div > input[type=text]").addClass("text");        
    $("fieldset > div > input[type=password]").addClass("text");
    $("fieldset > div > textarea").addClass("textarea");
    $("fieldset > div > input[type=checkbox]").addClass("checkbox");
    $("fieldset > div > input[type=radio]").addClass("radio");
    $("fieldset > div > input[type=checkbox].indeterminate").prop("indeterminate", true);                   
// Textxarea Autogrow
    $('textarea.autogrow').autoGrow();              
// Dismiss alert box
    $(".alert.dismissible").click(function(){               
        $(this).animate({opacity:0},'slow',function(){              
            $(this).slideUp();
        });
    });         
// Input Datepicker Config                
    $( ".datepicker" ).datepicker({ dateFormat: 'd M yy' });;
// input Slider Config
    function slideMarkers(event,ui){                                      
        var totalLabels = $(this).children().children().size();         
        $(this).children("ol.slider_labels").children("li").css({               
        "margin-right":(100/(totalLabels-1))+"%"
        });
    }
    $( ".slider" ).slider({ 

您可以在此处查看文件:

破坏的javascript

解决方法是将该文件上传到我的其他主机。谁读得很干净,间距输入等等... 工作版本

所以我的问题是,有人知道这是怎么发生的吗?我的第一个主机 siteground.com 正在破坏我的 javascript 文件,而另一个没有?

这真的很令人沮丧,尤其是当你为此浪费了 2 个小时。

4

1 回答 1

1

好吧,文本文件的行尾因系统而异。他们应该是

  • \r\n在 Windows 上
  • \n在 Unix 上
  • \r在 Mac 上

因此,如果您在 Windows 上编写一个文本文件并在 Unix 上打开它,您会看到正确的换行符(尽管带有“垃圾”\r符号)。同样在 mac 上,正确的\r换行符和垃圾\n。但是,在 Linux 和 Mac 之间移动会导致对换行符的完全误解。同样,从它们中的任何一个移动到 Windows 都意味着换行符的符号不足。

所有这些都可能导致忽略换行符并将文本视为单行。检查两台机器上的操作系统。这是最可能的问题原因 - 除非您的服务器故意这样做:)

于 2012-05-10T22:24:36.110 回答