Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[ASP.NET MVC] JS minified files worden niet herkend

Pagina: 1
Acties:

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 16:59
nou breekt m'n klomp jongens.

Ik heb op localhost een aantal javascript files (waaronder die van jQuery) welke niet worden herkend in de minified versie. Het pad is in het huidige geval "/Scripts/jquery.min.js"

Deze roep ik aan in mijn code en de site begint meteen te klagen dat jquery niet gedefinieerd is. Ok, duidelijk. jQuery file blijkbaar niet gevonden.
Maar wanneer ik de 'normale' jquery file aanroep "/Scripts/jquery.js" werkt het wel! :F :?

Beide files staan in dezelfde directory.

eeeeehhhhh.... Iemand ideeën?

  • 8088
  • Registratie: December 2000
  • Niet online

8088

NaN

Om welke server gaat het? En om welke browser? En welk OS? Welke http response code krijg je? Heb je 't bestand al eens opnieuw gedownload om corruptie uit te sluiten? Wordt een eigen .js bestand wel zonder problemen geladen?

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 16:59
localhost met IIS Express. Internet Explorer 11 op Windows 7.

De site is gebaseerd op het MVC framework versie 4 en de js files zitten in een bundle bij elkaar.

Ik zie overigens wel een verschil als ik de property debug van de compilationmode in de web.config aanpas.

Wanneer ik jQuery.min.js in de bundel zet met
code:
1
<compilation debug="false" />

werkt het wel.

Met onderstaand niet
<compilation debug="true" />

Bepaalt Visual Studio soms op basis hiervan of hij gecomprimeerde bestanden verwacht of niet?

  • Nivali
  • Registratie: Oktober 2010
  • Laatst online: 20-11 10:01
Visual studio opent .min bestanden niet lokaal. Tenminste niet standaard.
Ik ben geen expert, so correct me if i'm wrong..

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
pdebie schreef op maandag 07 april 2014 @ 20:11:
localhost met IIS Express. Internet Explorer 11 op Windows 7.

De site is gebaseerd op het MVC framework versie 4 en de js files zitten in een bundle bij elkaar.

Ik zie overigens wel een verschil als ik de property debug van de compilationmode in de web.config aanpas.

Wanneer ik jQuery.min.js in de bundel zet met
code:
1
<compilation debug="false" />

werkt het wel.

Met onderstaand niet
<compilation debug="true" />

Bepaalt Visual Studio soms op basis hiervan of hij gecomprimeerde bestanden verwacht of niet?
Probeer de .map file er eens bij te zetten.

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

pdebie schreef op maandag 7 april 20:11
Bepaalt Visual Studio soms op basis hiervan of hij gecomprimeerde bestanden verwacht of niet?
Ja, zie o.a. http://www.asp.net/mvc/tu...undling-and-minification:
Controlling Bundling and Minification

Bundling and minification is enabled or disabled by setting the value of the debug attribute in the compilation Element in the Web.config file.
Hoe heb je je bundle gedefinieerd? Op onderstaande manier zou het gewoon goed moeten gaan als je als bestanden bijvoorbeeld jquery-2.1.0.js en jquery-2.1.0.min.js hebt. Aan de hand van je debug-setting zoekt hij uit welke variant hij moet hebben.
C#:
1
bundles.Add( new ScriptBundle( "~/bundles/jquery" ).Include( "~/scripts/jquery-{version}.js" ) );


En roep je in je view wel de bundle aan, en niet het scriptbestand zelf?
C#:
1
@Scripts.Render( "~/bundles/jquery" )


Edit: .map-bestanden zijn voor de editor van Visual Studio. Die moet je niet naar de browser sturen.

[ Voor 5% gewijzigd door Rickets op 07-04-2014 20:22 ]

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 16:59
@xh3adshotx:
zojuist gedaan:
http://code.jquery.com/jquery-1.11.0.min.map

deze ook opgenomen in de bundel:
code:
1
2
3
bundles.Add(new ScriptBundle("~/bundles/jQuery").Include(
                "~/Scripts/jquery.min.js",
                "~/Scripts/jquery-1.11.0.min.map"));


code:
1
2
3
<compilation debug="false" targetFramework="4.5" /> <!-- werkt -->

<compilation debug="true" targetFramework="4.5" /> <!-- werkt niet. jQuery niet gedefinieerd -->


@Rickets:
Ga ik eens proberen.

[ Voor 5% gewijzigd door PdeBie op 07-04-2014 20:22 ]


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 16:59
Rickets schreef op maandag 07 april 2014 @ 20:20:
Hoe heb je je bundle gedefinieerd? Op onderstaande manier zou het gewoon goed moeten gaan als je als bestanden bijvoorbeeld jquery-2.1.0.js en jquery-2.1.0.min.js hebt. Aan de hand van je debug-setting zoekt hij uit welke variant hij moet hebben.
Dit werkt inderdaad. De jQuery file wordt nu altijd herkend, onafhankelijk van de debug mode. :)

Maar nu heb ik hetzelfde probleem met een andere javascript file waar ik geen normale versie van heb. Deze heb ik via een gekocht thema gekregen en heb ik alleen de .min variant van. Hoe hier mee om te gaan dan op localhost?

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

pdebie schreef op maandag 7 april 20:27
Maar nu heb ik hetzelfde probleem met een andere javascript file waar ik geen normale versie van heb. Deze heb ik via een gekocht thema gekregen en heb ik alleen de .min variant van. Hoe hier mee om te gaan dan op localhost?
De .min.js hardcoded in de bundle erbij zetten. Het enige verschil is dan dat dat script op localhost al minified is, wat niet erg is, omdat je toch maar 1 versie hebt.

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 16:59
ok top :)

Was dat inmiddels al even aan het proberen en dat werkt inderdaad :)

Ga ik nog een keer dat bundling verhaal van je lezen die je gelinkt had en daarna weer verder met de site. Bedankt!

  • xyanide
  • Registratie: September 2006
  • Laatst online: 14:47
Bundling slaat normaal de .min bestanden over omdat deze al geminified zijn.
Als je ze renamed of de normale versies gebruikt gaat alles naar wens :).

Zie o.a. ook: http://stackoverflow.com/...r-not-including-min-files.

Ps. bundling en minification wordt alleen afgetrapt in debug="false" mode. Als je debug op true hebt staan zul je ook alle bestanden los in je html zien staan.

[ Voor 25% gewijzigd door xyanide op 07-04-2014 20:44 ]


  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 16:59
ja klopt, ik zag het in m'n broncode :)
Zag eerst een hele rits bestanden en later alleen maar 1 regel (heb alles nu nog in 1 bundel)

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
[rant]
De bundling feature van MS is een draak.

Geen ondersteuning voor stable URLs met version tokens in het pad. Geen ondersteuning voor redirects naar nieuwere versies als een oudere versie opgehaald wordt die obsolete is. Een fingerprint hash die standaard toegevoegd wordt en problemen geeft met proxy servers die de responses voor requests met een query string standaard niet cachen. Geen ondersteuning voor het parsen van async module definitions (AMD).

De wijze waarop de volgorde van een file bundle standaard wordt bepaald is ronduit stupide: alle files in een folder pakken en een domme lexical sort toe passen. Dus je zult óf je filenames gesorteerd moeten zetten met nummers er voor, óf expliciet je hele bundel inhoud file voor file uit moeten schrijven om de volgorde met de hand goed te zetten.

Het hele bundling framework integreert niet eens met ASP.NET Routing en passeert ook de standaard VirtualPathProvider functionaliteit die op alle andere plekken in ASP.NET gebruikt wordt om transparant 'virtual file system' functionaliteit aan te kunnen bieden.

etc. etc. etc. "The list goes on"

Schrijf liever code met AMD en gebruik de RequireJS Optimizer voor bundling i.c.m. wat eigen routing of gebruik CommonJS syntax i.c.m. iets als Browserify.
[/rant]

[ Voor 10% gewijzigd door R4gnax op 08-04-2014 09:56 ]


  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 18:05
Je hoeft het natuurlijk niet te gebruiken, maar veel van je punten herken ik inderdaad wel.

En gefeliciteerd met je verjaardag hè! *O*

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
R4gnax schreef op dinsdag 08 april 2014 @ 09:54:
[rant]
De bundling feature van MS is een draak.

Geen ondersteuning voor stable URLs met version tokens in het pad. Geen ondersteuning voor redirects naar nieuwere versies als een oudere versie opgehaald wordt die obsolete is. Een fingerprint hash die standaard toegevoegd wordt en problemen geeft met proxy servers die de responses voor requests met een query string standaard niet cachen. Geen ondersteuning voor het parsen van async module definitions (AMD).

De wijze waarop de volgorde van een file bundle standaard wordt bepaald is ronduit stupide: alle files in een folder pakken en een domme lexical sort toe passen. Dus je zult óf je filenames gesorteerd moeten zetten met nummers er voor, óf expliciet je hele bundel inhoud file voor file uit moeten schrijven om de volgorde met de hand goed te zetten.

Het hele bundling framework integreert niet eens met ASP.NET Routing en passeert ook de standaard VirtualPathProvider functionaliteit die op alle andere plekken in ASP.NET gebruikt wordt om transparant 'virtual file system' functionaliteit aan te kunnen bieden.

etc. etc. etc. "The list goes on"

Schrijf liever code met AMD en gebruik de RequireJS Optimizer voor bundling i.c.m. wat eigen routing of gebruik CommonJS syntax i.c.m. iets als Browserify.
[/rant]
Sluit me hier helemaal bij aan. Maar aan de andere kant ben ik helemaal verslaafd aan de integratie in het asp.net framework. En echt goede alternatieven welke ik niet constant moet babysitten, of handmatig script files moet gaan aanpassen, heb ik nog niet gevonden.

AMD klinkt leuk, maar er zijn nog genoeg javascript plugins/frameworks welke het niet ondersteunen, en ik heb geen zin om die handmatig daarvoor aan te gaan passen.

Het gaat ook verder dan alleen javascript, je css wil je ook meenemen in dit verhaal.
Pagina: 1