Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

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/*"?

share|improve this question
add comment

1 Answer

up vote 5 down vote accepted

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;
?>
share|improve this answer
    
mmm.. I know what "concatenate" means, but how exactly would I do that on-the-fly? –  Snailer Apr 2 '11 at 22:46
    
(Added PHP example) –  danlefree Apr 3 '11 at 1:37
    
Wow thanks for the help! I'm just getting into php now, so I only know the basics. It works great! –  Snailer Apr 4 '11 at 3:22
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.