Good morning,
English is not my first language, so, please, be patient with my mistakes.
I have trouble with a page “sejour” in my website.
I put In the application container DI with the register routes
$app->setBasePath('/slim-secretariat-web');
the current folder is: /var/www/html/slim-secretariat-web/public. i verified it with
<?php echo getcwd(); ?>
The URL is: http://localhost/slim-secretariat-web/sejours/2
the route in the Bootstrap menu is href =“sejours/2”
the route in config/routes.php:
return function (App $app) { ..... $app->get('/sejours/{id}', ControlleurSejours::class . ':requeteSejours'); //récupération des données du séjour };
the head.php
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hôpital SoigneMoi</title>
<!--élimination de l'icone Favicon -->
<link rel="icon" href="data:,">
<!--fichiers css bootstrap -->
<link rel="stylesheet" link href="assets/css/bootstrap.min.css"> <!-- on se positionne par rapporu au dossier public -->
<!-- fichier personnel -->
<link href="assets/css/styles.css" rel="stylesheet"/> <!-- car on lance la commande php -S localhost -public -->
</head>
With href =“sejours/2” (Vootstrap menu) and /sejours/{id} (routes.php), there is a problem of CSS. With href =“sejour” and /sejours, it’s ok.
Ignore the dates, there is a false date.
Thanks for your help and have good day.
odan
May 8, 2024, 6:39pm
2
Hello @samclia This topic has been discussed many times in this forum.
Do you use Apache as web server? If so, have you tried this setup?
https://www.slimframework.com/docs/v4/start/web-servers.html#apache-configuration
1 Like
Hi Odan!
Thanks for your reply.
I use Apache.
I made it:
Run a webstite with the slim apllication
I created the two .htaccess.
Good night.
odan
May 9, 2024, 9:02am
4
The <base>
HTML element specifies the base URL to use for all relative URLs in a document.
To tell the browser where the basePath is, you can define a “base” tag like this in your layout template:
<head>
<meta charset="UTF-8">
<title>Example</title>
<base href="<?= $basePath ?>/"/>
</head>
Or, if you use Twig:
<base href="{{ base_path() }}/"/>
It doesn’t work. There is no css.
in the container.php, I put $app->setBasePath(‘/slim-secretariat-web’);
App::class => function (ContainerInterface $container) {
$app = AppFactory::createFromContainer($container);
// Configuration de le chemin de la base
$app->setBasePath('/slim-secretariat-web'); //https://www.slimframework.com/docs/v4/start/web-servers.html
// Register routes
(require __DIR__ . '/routes.php')($app);
// Register middleware
(require __DIR__ . '/middleware.php')($app);
return $app;
},
this the head.php:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="<?= $basePath ?>/">
<!--élimination de l'icone Favicon -->
<link rel="icon" href="data:,">
<!--fichiers css bootstrap -->
<link rel="stylesheet" link href="assets/css/bootstrap.min.css"> <!-- on se positionne par rapporu au dossier public -->
<!-- fichier personnel -->
<link href="assets/css/styles.css" rel="stylesheet"/> <!-- car on lance la commande php -S localhost -public -->
</head>
and in after this instruction in a page :
``
<?php echo getcwd(); ?>
it gives:
/var/www/html/slim-secretariat-web/public
odan
May 9, 2024, 1:33pm
6
samclia:
It doesn’t work.
Make sure to pass the basePath
variable into your layout template.
Please add more details.
There is no css.
But: <link rel="stylesheet" link href="assets/css/bootstrap.min.css">
Are you sure that there is no CSS? Also the second link
is not a valid CSS tag.
Thank you to indicate me the error.
It works with:
<base href="<?= "/slim-secretariat-web" ?>/"/>
It doesn’t work with:
<base href="<?= $basePath ?>/"/>
I’m thinking I had a dream. The page doesn’t work with the id. I will you give the informations I can give.
I’m sorry to be confused.
I persist:
<base href="<?= "/slim-secretariat-web" ?>/"/>
works. With
<base href="<?= $basePath ?>/"/>
No CSS work with all the web pages.
Good nigth.
J’ai un très long message sur une page. Le début suffira peut-être.
1 ( ! ) Warning: Undefined variable $basePath in /var/www/html/slim-secretariat-web/src/Views/head.php on line 4 Call Stack #TimeMemoryFunctionLocation 10.0003352128{main}
odan
May 10, 2024, 6:22am
13
This is because in this example, $basePath is a template variable that has to be defined and passed from a middleware or controller action.
So I have to define this variable $pathPath and use it:
<base href="<?= $basePath ?>/"/>
It’ related to
$app->setBasePath('/slim-secretariat-web');
So what can I do to use it?
It’s a little complex.
<base href="<?= $basePath ?>/"/>
is ok. Thanks for your help.