baseUri a cesty k souborům

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honca
Člen | 28
+
0
-

Zdravím,
mám menší dilema ohledně proměnné $baseUri. V příkladu akrabat mi vypisuje správně cestu k souborům (např. /akrabat/document_root/css/main.css), ale když si vytvořím nový projekt, tak mi tam už prostě v té cestě chybí ten document_root a přitom používám jako základ právě ten akrabat. Nevím, kde jsem udělal chybu, ale už mě nic nenapadá. Možná se to dá někde nastavit jako Environment::setVariable(), ale když to dobře funguje v tom akrabatu, proč to nefunguje správně i dál?? :-)
No a nehledě na to, že bych třeba vůbec nechtěl mít v cestě k souborům uvedený ten /document_root/… a přitom bych chtěl zachovat původní adresářovou strukturu aplikace tak, jak je to třeba na Rootu..
Díky za případnou pomoc..
Honza

phx
Člen | 651
+
0
-

Kde mas umisteny projekt?

Ukaz zdrojaky: index.php a bootstrap.php.

Honca
Člen | 28
+
0
-

No projekt mám umístěný na stejný úrovni jako akrabat, takže mám /localhost/akrabat a stejně tak i /localhost/projekt..

bootstrap.php je

<?php

// Step 1: Load Nette Framework
// this allows load Nette Framework classes automatically so that
// you don't have to litter your code with 'require' statements
require LIBS_DIR . '/Nette/loader.php';


// Step 2: Configure environment
// 2a) enable Nette\Debug for better exception and error visualisation
Debug::enable(Environment::DEVELOPMENT);

// 2b) load configuration from config.ini file
//Environment::loadConfig();

// 2c) check if directory /app/temp is writable
if (@file_put_contents(Environment::expand('%tempDir%/_check'), '') === FALSE) {
	throw new Exception("Make directory '" . Environment::getVariable('tempDir') . "' writable!");
}

// 2d) enable RobotLoader - this allows load all classes automatically
$loader = new RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR);
$loader->register();



// Step 3: Configure application
// 3a) get and setup a front controller
$application = Environment::getApplication();

// 3b) establish database connection
$application->onStartup[] = 'Model::initialize';



// Step 4: Setup application router
$router = $application->getRouter();

// mod_rewrite detection
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
    $router[] = new Route('index.php', array(
            'presenter' => 'Main',
            'action' => 'default',
    ), Route::ONE_WAY);

    $router[] = new Route('<presenter>/<action>/<id>', array(
            'presenter' => 'Main',
            'action' => 'default',
            'id' => NULL,
    ));

} else {
    $router[] = new SimpleRouter('Main:default');
}



// Step 5: Run the application!
$application->run();

?>

a index.php

<?php

// absolute filesystem path to the web root
define('WWW_DIR', dirname(__FILE__));

// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/app');

// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . '/libs');

// load bootstrap file
require APP_DIR . '/bootstrap.php';

?>
David Grudl
Nette Core | 8228
+
0
-

Teoreticky nemusí dobře fungovat autodetekce. V takovém případě se dá nastavit baseUri manuálně přes Environment::setVariable('baseUri', ...);