0

SMARTY PHP TEMPLATE ENGINEApache 2およびPHP 5.3.3を使用しています。これは私の元の main.js ファイルの内容でした

// Functions
(function($){
    var url1 = /(^|<|\s)(www\..+?\..+?)(\s|>|$)/g,
    url2 = /(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/g,
    linkifyThis = function () {
        var childNodes = this.childNodes,
        i = childNodes.length;
        while(i--)
        {
            var n = childNodes[i];
            if (n.nodeType == 3) {
                var html = $.trim(n.nodeValue);
                if (html)
                {
                    html = html.replace(/&/g, '&')
                    .replace(/</g, '&lt;')
                    .replace(/>/g, '&gt;')
                    .replace(url1, '$1<a href="http://$2" target="_blank">$2</a>$3')
                    .replace(url2, '$1<a href="$2" target="_blank">$2</a>$5');
                    $(n).after(html).remove();
                }
            }
            else if (n.nodeType == 1  &&  !/^(a|button|textarea)$/i.test(n.tagName)) {
                linkifyThis.call(n);
            }
        }
    };
    $.fn.linkify = function () {
        return this.each(linkifyThis);
    };
})(jQuery);

function openCenteredWindow(url, height, width, name, parms) {
   var left = Math.floor( (screen.width - width) / 2);
   var top = Math.floor( (screen.height - height) / 2);
   var winParms = "top=" + top + ",left=" + left + ",height=" + height + ",width=" + width;
   if (parms) { winParms += "," + parms; }
   var win = window.open(url, name, winParms);
   if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
   return win;
}

しかし、ブラウザで js ファイル ( http://domain.com/js/main.js ) を参照していたときは、次のようになりました。

(function($){var url1=/(^|&lt;|\s)(www\..+?\..+?)(\s|&gt;|$)/g,url2=/(^|&lt;|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|&gt;|$)/g,linkifyThis=function(){var childNodes=this.childNodes,i=childNodes.length;while(i--)
{var n=childNodes[i];if(n.nodeType==3){var html=$.trim(n.nodeValue);if(html)
{html=html.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(url1,'$1<a href="http://$2" target="_blank">$2</a>$3').replace(url2,'$1<a href="$2" target="_blank">$2</a>$5');$(n).after(html).remove();}}
else if(n.nodeType==1&&!/^(a|button|textarea)$/i.test(n.tagName)){linkifyThis.call(n);}}};$.fn.linkify=function(){return this.each(linkifyThis);};})(jQuery);function openCenteredWindow(url,height,width,name,parms){var left=Math.floor((screen.width- width)/2);var top=Math.floor((screen.height- height)/2);var winParms="top="+ top+",left="+ left+",height="+ height+",width="+ width;if(parms){winParms+=","+ parms;}
var win=window.open(url,name,winParms);if(parseInt(navigator.appVersion)>=4){win.window.focus();}
return win;}

改行文字とコメント行を削除する GZIPPED のようなものです。次に、 main.jsファイルに何かを追加します。main.jsの元のコンテンツは次のとおりです

// Functions
(function($){
    var url1 = /(^|&lt;|\s)(www\..+?\..+?)(\s|&gt;|$)/g,
    url2 = /(^|&lt;|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|&gt;|$)/g,
    linkifyThis = function () {
        var childNodes = this.childNodes,
        i = childNodes.length;
        while(i--)
        {
            var n = childNodes[i];
            if (n.nodeType == 3) {
                var html = $.trim(n.nodeValue);
                if (html)
                {
                    html = html.replace(/&/g, '&amp;')
                    .replace(/</g, '&lt;')
                    .replace(/>/g, '&gt;')
                    .replace(url1, '$1<a href="http://$2" target="_blank">$2</a>$3')
                    .replace(url2, '$1<a href="$2" target="_blank">$2</a>$5');
                    $(n).after(html).remove();
                }
            }
            else if (n.nodeType == 1  &&  !/^(a|button|textarea)$/i.test(n.tagName)) {
                linkifyThis.call(n);
            }
        }
    };
    $.fn.linkify = function () {
        return this.each(linkifyThis);
    };
})(jQuery);

function openCenteredWindow(url, height, width, name, parms) {
   var left = Math.floor( (screen.width - width) / 2);
   var top = Math.floor( (screen.height - height) / 2);
   var winParms = "top=" + top + ",left=" + left + ",height=" + height + ",width=" + width;
   if (parms) { winParms += "," + parms; }
   var win = window.open(url, name, winParms);
   if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
   return win;
}

$(document).ready({

    /*

    -webkit-border-bottom-left-radius: 0px !important;
    -moz-border-radius-bottomleft: 0px !important;
    border-bottom-left-radius: 0px !important;

    */

    /*  dropdown sub-menu control
    ***************************/

    var leftItemSub = $('.loginbarLeftItem').find('ul');
    var rightItemSub = $('.loginbarRightItem').find('ul');
    if(leftItemSub.length){
        leftItemSub.parent().css({
            '-webkit-border-bottom-left-radius': '10px !important',
            '-moz-border-radius-bottomleft': '10px !important',
            'border-bottom-left-radius': '10px !important'
        });
    }
    if(rightItemSub.length){
        rightItemSub.parent().css({
            '-webkit-border-bottom-left-radius': '10px !important',
            '-moz-border-radius-bottomleft': '10px !important',
            'border-bottom-left-radius': '10px !important'
        });
    }
});

しかし、ブラウザでmain.jsファイルを参照すると、同じです (新しい行はなく、新しく追加されたコンテンツはありません)。

(function($){var url1=/(^|&lt;|\s)(www\..+?\..+?)(\s|&gt;|$)/g,url2=/(^|&lt;|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|&gt;|$)/g,linkifyThis=function(){var childNodes=this.childNodes,i=childNodes.length;while(i--)
{var n=childNodes[i];if(n.nodeType==3){var html=$.trim(n.nodeValue);if(html)
{html=html.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(url1,'$1<a href="http://$2" target="_blank">$2</a>$3').replace(url2,'$1<a href="$2" target="_blank">$2</a>$5');$(n).after(html).remove();}}
else if(n.nodeType==1&&!/^(a|button|textarea)$/i.test(n.tagName)){linkifyThis.call(n);}}};$.fn.linkify=function(){return this.each(linkifyThis);};})(jQuery);function openCenteredWindow(url,height,width,name,parms){var left=Math.floor((screen.width- width)/2);var top=Math.floor((screen.height- height)/2);var winParms="top="+ top+",left="+ left+",height="+ height+",width="+ width;if(parms){winParms+=","+ parms;}
var win=window.open(url,name,winParms);if(parseInt(navigator.appVersion)>=4){win.window.focus();}
return win;}

CSS ファイルでも同じ問題が発生します。私のJSおよびCSSファイルをGZIPしてキャッシュするもの。しかし、私はそれを見つけることができませんでした。試してみましたCTRL+F5

何か案は ?

注 1

/js および /css フォルダーに.htaccessファイルがありません。ただし、ルート フォルダーには .htaccess があります。

options -multiviews
<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase /
RewriteRule ^users$ users.php
RewriteRule ^categories/([^/.]+)?$ cat.php?cid=$1&%{QUERY_STRING}
RewriteRule ^user/([^/.]+)?$ user.php?uname=$1&%{QUERY_STRING}
RewriteRule ^tags/([^/.]+)/([^/.]+)?$ tags.php?cid=$1&tag=$2&%{QUERY_STRING}
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]*)?$ view.php?title=$1&id=$2&%{QUERY_STRING}
</IfModule>
<IfModule mod_security.c> 
   # Turn off mod_security filtering. 
   SecFilterEngine Off 

   # The below probably isn't needed, 
   # but better safe than sorry. 
   SecFilterScanPOST Off 
</IfModule>

注2

main.js?(randomnumbers)( ) を参照すると、like main.js?345458新しいバージョンが表示されます。しかし、まだコメント行と改行はありません。

4

2 に答える 2

1

私の推測では、 https://developers.google.com/speed/pagespeed/modのようなものがWebサーバーにインストールされています。

http://domain.com/js/main.js?cachebuster=somethingrandomをリクエストするとどうなりますか?(うまくいけば)main.jsの本当に新しいバージョンを強制しますか?

更新:URLパラメータを変更すると新しいバージョンが得られるというコメントを読んで、自分のサーバーまたは別の場所のどこかでプロキシになる可能性があります。

于 2012-05-27T21:20:30.033 に答える
0

CloudFlare が私のドメインで有効になっていることに気付きました。CloudFlareは、js / cssファイルを自動的にキャッシュ / GZIPします。無効にして問題を解決しました。

ありがとうございました。

于 2012-05-30T20:02:14.273 に答える