sourceMappingURL from jquery generates 404 error in apache

前端 未结 2 1419
星月不相逢
星月不相逢 2020-12-29 02:41

Was browsing through apache logs and found interesting thing:

When a users access any page where I have included jquery, apache tries to get jquery-xxx.min.map file

相关标签:
2条回答
  • 2020-12-29 03:22

    There are several ways to remove the error.

    1. By default Chrome will enable source maps. You can disable this by opening the Developer Tools and changing the general settings. Uncheck the Enable source maps option. This of course won't fix the error on Apache.

    2. Change your pages to use a CDN served by jQuery or Google rather than using a local version. This will stop your local Apache from showing the issue in your logs.

    3. Alternatively, you will have to rewrite the comment at the top of your local version of jquery-1.10-2.min.js to stop this error. Otherwise you'll need to wait for a patch by jQuery.

    From:

    /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
    //@ sourceMappingURL=jquery-1.10.2.min.map
    */
    

    To:

    /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license */
    

    sourceMappingURL is an HTML5 feature which has under gone some changes in the last months.

    • More info on sourceMappingURL: Introduction to JavaScript Source Maps, March 2012

    • See the following link related to recent changes to sourceMappingURL: sourceMappingURL and sourceURL syntax changed, June 2013

    0 讨论(0)
  • 2020-12-29 03:29

    JQuery 2.1.4 min file causes 404 with IE > 8 when it attempts to download map file. jquery-2.1.4.min.js has following as last line:

    //# sourceMappingURL=jquery.min.map
    

    There are two (good) options to fix this.

    Option ONE (preferred, keeps the map file request for production)

    Step 1. Move last line in min file to second line as below

    /*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
    //# sourceMappingURL=jqueryminmap
    

    Notice that dots are removed in jquery.min.map.

    Step 2. Add a bundle for map file with no transforms.

            var jquerymap = new ScriptBundle("~/bundles/jqueryminmap").Include(
                        "~/Scripts/jquery-2.1.4.min.map");
            jquerymap.Transforms.Clear();
            bundles.Add(jquerymap);
    

    Even though this is the preferred method it requires you to change the source file (jquery-2.1.4.min.js). Hopefully, JQuery developer or IE will fix the issue in the next release.

    Option TWO

    Add jquery bundle without removing transforms (which causes MVC engine to remove last line in 2.1.4 min file which in turn will tell browser not to request map file).

            var jquery = new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js");
            bundles.Add(jquery);
    

    Both of these options will fix the 404 on map file for IE > 8 and JQuery 2.1.4 but I prefer option ONE.

    0 讨论(0)
提交回复
热议问题