canvas: Artisan file missing (Could not open input file: artisan)

I’m not deathly familiar with Laravel, but it seems like composer require austintoddj/canvas Doesn’t seem to supply any artisan file anywhere. The same applies to the various other composer commands I’ve found. (I.E. composer create-project --prefer-dist austintoddj/canvas blog)

I’m unsure if I’m missing something that is usually a given with deploying Laravel projects or if there’s something not working correctly.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 26 (13 by maintainers)

Most upvoted comments

To do that, you’ll need to update a few things.

Assuming you’re starting from a new Laravel app, remove any existing routes in web.php and put these in their place:

Route::prefix('api')->group(function () {
    Route::get('posts', [\App\Http\Controllers\CanvasUiController::class, 'getPosts']);
    Route::get('posts/{slug}', [\App\Http\Controllers\CanvasUiController::class, 'showPost'])
            ->middleware('Canvas\Http\Middleware\Session');

    Route::get('tags', [\App\Http\Controllers\CanvasUiController::class, 'getTags']);
    Route::get('tags/{slug}', [\App\Http\Controllers\CanvasUiController::class, 'showTag']);
    Route::get('tags/{slug}/posts', [\App\Http\Controllers\CanvasUiController::class, 'getPostsForTag']);

    Route::get('topics', [\App\Http\Controllers\CanvasUiController::class, 'getTopics']);
    Route::get('topics/{slug}', [\App\Http\Controllers\CanvasUiController::class, 'showTopic']);
    Route::get('topics/{slug}/posts', [\App\Http\Controllers\CanvasUiController::class, 'getPostsForTopic']);

    Route::get('users/{id}', [\App\Http\Controllers\CanvasUiController::class, 'showUser']);
    Route::get('users/{id}/posts', [\App\Http\Controllers\CanvasUiController::class, 'getPostsForUser']);
});

Route::get('/{view?}', [\App\Http\Controllers\CanvasUiController::class, 'index'])->where('view', '(.*)')->name('canvas-ui');

Change line 48 of js/canvas-ui/routes.js from:

redirect: '/canvas-ui',

to this:

redirect: '/',

Change line 25 of js/canvas-ui/mixins/base.js from this:

instance.defaults.baseURL = '/canvas-ui';

to this:

instance.defaults.baseURL = '/';

Then, re-compile the assets:

npm run dev

Scratch that, I was able to find the path to canvas UI in the web.php file. It seems to work great!