Skip to content

Commit 0b94fb3

Browse files
committed
minor #17470 [Build] Fix assets in all directories no matter the deep (elementaire)
This PR was merged into the 5.4 branch. Discussion ---------- [Build] Fix assets in all directories no matter the deep Assets URLs in some HTML files was not fixed, example: `/reference/forms/types/choice.html` And only `<link>` was fixed. Fix assets path in all directories no matter the deep. Add fix for js' assets. Add fix for fontawesome' assets. Commits ------- 92ac566 Fix assets path in all directories no matter the deep. Add fix for js' assets. Add fix for fontawesome' assets.
2 parents 9e02e5b + 92ac566 commit 0b94fb3

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

_build/build.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,18 @@
4747

4848
if ($result->isSuccessful()) {
4949
// fix assets URLs to make them absolute (otherwise, they don't work in subdirectories)
50-
foreach (glob($outputDir.'/**/*.html') as $htmlFilePath) {
50+
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($outputDir));
51+
52+
foreach (new RegexIterator($iterator, '/^.+\.html$/i', RegexIterator::GET_MATCH) as $match) {
53+
$htmlFilePath = array_shift($match);
54+
$htmlContents = file_get_contents($htmlFilePath);
55+
file_put_contents($htmlFilePath, str_replace('<head>', '<head><base href="/">', $htmlContents));
56+
}
57+
58+
foreach (new RegexIterator($iterator, '/^.+\.css/i', RegexIterator::GET_MATCH) as $match) {
59+
$htmlFilePath = array_shift($match);
5160
$htmlContents = file_get_contents($htmlFilePath);
52-
file_put_contents($htmlFilePath, str_replace('href="assets/', 'href="/assets/', $htmlContents));
61+
file_put_contents($htmlFilePath, str_replace('fonts/', '../fonts/', $htmlContents));
5362
}
5463

5564
$io->success(sprintf("The Symfony Docs were successfully built at %s", realpath($outputDir)));

0 commit comments

Comments
 (0)