When you are loading JavaScript files via the <script> tag, you can only do it one-by-one, ie <script src="myFile.js">
or so I'm assuming. Is there a way to load an entire directory of .js files like src="dir/*"
?
1 Answer
No - you cannot, by definition, (see RFC 1738) incorporate a wildcard into a URL.
If you have server-side scripting access you could embed a block of code which inserts a script tag for every file read from a directory or you could concatenate the scripts on-the-fly (concatenation is generally preferable as it requires less overhead to download a single concatenated file).
Most efficient solution: concatenate the relevant script files and link to that file from one <script>
declaration.
[H]ow exactly would I do that on-the-fly?
Here's an example of how you might do that with a PHP file named all-js.php
in the same directory with all your scripts:
<?php
$output = '';
$dir = dirname(__FILE__);
$files = scandir( $dir );
if ( $files )
{
foreach ( $files as $file )
{
if ( '.js' == substr( $file, -3, 3 ) )
$output .= "/* file: $file */\n\n" . file_get_contents($file) . "\n\n";
}
}
echo $output;
?>