widmogrod / zf2-assetic-module

Zend Framework module for Assetic
146 stars 62 forks source link

Installation Problems: 'Web path is not set' #133

Open frazDev opened 9 years ago

frazDev commented 9 years ago

Hi,

I've tried to use this module in a fresh zf2 ZendSkeletonApplication. I've read/followed the How To and the Configuration guide but i get error in browser and after the command line:

php public/index.php assetic setup

The Error is:

Fatal error: Uncaught exception 'AsseticBundle\Exception\RuntimeException' with message 'Web path is not set' in vendor\widmogrod\zf2-assetic-module\src\AsseticBundle\Configuration.php:185

My configuration file:

config/autoload/assets.config.php

<?php
// configs/assets.config.php
return array(
    'assetic_configuration' => array(

        'debug' => true,
        'buildOnRequest' => true,

        'webPath' => realpath('public/assets'),
        'basePath' => 'assets',

        'cachePath' => 'data/cache',
        'cacheEnabled' => false,    

        'routes' => array(
            'home' => array(
                '@base_js',
                '@base_css',
            ),
        ),

        'modules' => array(
            'Application' => array(
                'root_path' => __DIR__ . '/../assets',
                'collections' => array(
                    'base_css' => array(
                        'assets' => array(
                            'css/bootstrap-theme.min.css',
                            'css/style.css',
                            'css/bootstrap.min.css'
                        ),
                        'filters' => array(
                            'CssRewriteFilter' => array(
                                'name' => 'Assetic\Filter\CssRewriteFilter'
                            )
                        ),
                    ),

                    'base_js' => array(
                        'assets' => array(
                            'js/html5shiv.js',
                            'js/jquery.min.js',
                            'js/bootstrap.min.js',
                        )
                    ),

                    'base_images' => array(
                        'assets' => array(
                            'img/*.png',
                            'img/*.ico',
                        ),
                        'options' => array(
                            'move_raw' => true,
                        )
                    ),
                ),
            ),
        ),
    )
);

The directory structure is: dir

I'm running XAMPP on W7.

Can anyone help me to troubleshoot this problem?

widmogrod commented 9 years ago

Could you provide full stack trace of the error? Could you try to var_dump result of 'webPath' => realpath('public/assets'),

frazDev commented 9 years ago

I switched to a LAMP env because I have not access to that machine but I still get the same error. Where should I dump the webpath value? If you take a look here you will find the stack error and the dump of the Configuration class before the error is thrown.

The command line full error output is the following:

The application has thrown an exception!

Zend\ServiceManager\Exception\ServiceNotCreatedException

An exception was raised while creating "AsseticService"; no instance returned

/var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:946

0 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(1097): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Array, 'asseticbundlese...', 'AsseticService')

1 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(638): Zend\ServiceManager\ServiceManager->createFromFactory('asseticbundlese...', 'AsseticService')

2 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('AsseticService', 'asseticbundlese...')

3 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)

4 /var/www/frazdev/zf2/vendor/widmogrod/zf2-assetic-module/src/AsseticBundle/Initializer/AsseticBundleInitializer.php(24): Zend\ServiceManager\ServiceManager->get('AsseticService')

5 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(666): AsseticBundle\Initializer\AsseticBundleInitializer->initialize(Object(AsseticBundle\Controller\ConsoleController), Object(Zend\Mvc\Controller\ControllerManager))

6 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('AsseticBundle\C...', 'asseticbundleco...')

7 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)

8 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/AbstractPluginManager.php(116): Zend\ServiceManager\ServiceManager->get('AsseticBundle\C...', false)

9 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/ControllerManager.php(137): Zend\ServiceManager\AbstractPluginManager->get('AsseticBundle\C...', Array, false)

10 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/DispatchListener.php(76): Zend\Mvc\Controller\ControllerManager->get('AsseticBundle\C...')

11 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))

12 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))

13 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

14 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

15 /var/www/frazdev/zf2/public/index.php(17): Zend\Mvc\Application->run()

16 {main}

Previous Exception(s):

Zend\ServiceManager\Exception\ServiceNotCreatedException

An exception was raised while creating "AsseticAssetWriter"; no instance returned

/var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:946

0 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(1097): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Array, 'asseticbundlese...', 'AsseticService')

1 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(638): Zend\ServiceManager\ServiceManager->createFromFactory('asseticbundlese...', 'AsseticService')

2 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('AsseticService', 'asseticbundlese...')

3 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)

4 /var/www/frazdev/zf2/vendor/widmogrod/zf2-assetic-module/src/AsseticBundle/Initializer/AsseticBundleInitializer.php(24): Zend\ServiceManager\ServiceManager->get('AsseticService')

5 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(666): AsseticBundle\Initializer\AsseticBundleInitializer->initialize(Object(AsseticBundle\Controller\ConsoleController), Object(Zend\Mvc\Controller\ControllerManager))

6 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('AsseticBundle\C...', 'asseticbundleco...')

7 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)

8 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/AbstractPluginManager.php(116): Zend\ServiceManager\ServiceManager->get('AsseticBundle\C...', false)

9 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/ControllerManager.php(137): Zend\ServiceManager\AbstractPluginManager->get('AsseticBundle\C...', Array, false)

10 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/DispatchListener.php(76): Zend\Mvc\Controller\ControllerManager->get('AsseticBundle\C...')

11 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))

12 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))

13 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

14 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

15 /var/www/frazdev/zf2/public/index.php(17): Zend\Mvc\Application->run()

16 {main}

AsseticBundle\Exception\RuntimeException

Web path is not set

/var/www/frazdev/zf2/vendor/widmogrod/zf2-assetic-module/src/AsseticBundle/Configuration.php:185

0 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(1097): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Array, 'asseticbundlese...', 'AsseticService')

1 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(638): Zend\ServiceManager\ServiceManager->createFromFactory('asseticbundlese...', 'AsseticService')

2 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('AsseticService', 'asseticbundlese...')

3 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)

4 /var/www/frazdev/zf2/vendor/widmogrod/zf2-assetic-module/src/AsseticBundle/Initializer/AsseticBundleInitializer.php(24): Zend\ServiceManager\ServiceManager->get('AsseticService')

5 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(666): AsseticBundle\Initializer\AsseticBundleInitializer->initialize(Object(AsseticBundle\Controller\ConsoleController), Object(Zend\Mvc\Controller\ControllerManager))

6 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('AsseticBundle\C...', 'asseticbundleco...')

7 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)

8 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/ServiceManager/AbstractPluginManager.php(116): Zend\ServiceManager\ServiceManager->get('AsseticBundle\C...', false)

9 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/ControllerManager.php(137): Zend\ServiceManager\AbstractPluginManager->get('AsseticBundle\C...', Array, false)

10 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/DispatchListener.php(76): Zend\Mvc\Controller\ControllerManager->get('AsseticBundle\C...')

11 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))

12 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))

13 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

14 /var/www/frazdev/zf2/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))

15 /var/www/frazdev/zf2/public/index.php(17): Zend\Mvc\Application->run()

16 {main}

This is config/application.config.php

// This should be an array of module namespaces used in the application.
'modules' => array(
    'Application',
         'AsseticBundle' // <= declare you want to use AsseticModule 
),
kersten commented 8 years ago

Just for clarification, you need to rename asset.config.php into asset.global.php ind the autoload directory.