【问题标题】:Upload Laravel in host在主机中上传 Laravel
【发布时间】:2019-01-18 07:45:23
【问题描述】:

我将我的项目从 wamp 上传到我的主机。 当我打开我的网站时,网站显示:

(1/1) 无效参数异常

查看 [欢迎] 未找到。

.....

在 FileViewFinder.php 第 137 行

FileViewFinder.php:

<?php

namespace Illuminate\View;

use InvalidArgumentException;
use Illuminate\Filesystem\Filesystem;

 class FileViewFinder implements ViewFinderInterface
{
/**
 * The filesystem instance.
 *
 * @var \Illuminate\Filesystem\Filesystem
 */
protected $files;

/**
 * The array of active view paths.
 *
 * @var array
 */
protected $paths;

/**
 * The array of views that have been located.
 *
 * @var array
 */
protected $views = [];

/**
 * The namespace to file path hints.
 *
 * @var array
 */
protected $hints = [];

/**
 * Register a view extension with the finder.
 *
 * @var array
 */
protected $extensions = ['blade.php', 'php', 'css'];

/**
 * Create a new file view loader instance.
 *
 * @param  \Illuminate\Filesystem\Filesystem  $files
 * @param  array  $paths
 * @param  array  $extensions
 * @return void
 */
public function __construct(Filesystem $files, array $paths, array $extensions = null)
{
    $this->files = $files;
    $this->paths = $paths;

    if (isset($extensions)) {
        $this->extensions = $extensions;
    }
}

/**
 * Get the fully qualified location of the view.
 *
 * @param  string  $name
 * @return string
 */
public function find($name)
{
    if (isset($this->views[$name])) {
        return $this->views[$name];
    }

    if ($this->hasHintInformation($name = trim($name))) {
        return $this->views[$name] = $this->findNamespacedView($name);
    }

    return $this->views[$name] = $this->findInPaths($name, $this->paths);
}

/**
 * Get the path to a template with a named path.
 *
 * @param  string  $name
 * @return string
 */
protected function findNamespacedView($name)
{
    list($namespace, $view) = $this->parseNamespaceSegments($name);

    return $this->findInPaths($view, $this->hints[$namespace]);
}

/**
 * Get the segments of a template with a named path.
 *
 * @param  string  $name
 * @return array
 *
 * @throws \InvalidArgumentException
 */
protected function parseNamespaceSegments($name)
{
    $segments = explode(static::HINT_PATH_DELIMITER, $name);

    if (count($segments) != 2) {
        throw new InvalidArgumentException("View [$name] has an invalid name.");
    }

    if (! isset($this->hints[$segments[0]])) {
        throw new InvalidArgumentException("No hint path defined for [{$segments[0]}].");
    }

    return $segments;
}

/**
 * Find the given view in the list of paths.
 *
 * @param  string  $name
 * @param  array   $paths
 * @return string
 *
 * @throws \InvalidArgumentException
 */
protected function findInPaths($name, $paths)
{
    foreach ((array) $paths as $path) {
        foreach ($this->getPossibleViewFiles($name) as $file) {
            if ($this->files->exists($viewPath = $path.'/'.$file)) {
                return $viewPath;
            }
        }
    }

    throw new InvalidArgumentException("View [$name] not found.");
}

/**
 * Get an array of possible view files.
 *
 * @param  string  $name
 * @return array
 */
protected function getPossibleViewFiles($name)
{
    return array_map(function ($extension) use ($name) {
        return str_replace('.', '/', $name).'.'.$extension;
    }, $this->extensions);
}

/**
 * Add a location to the finder.
 *
 * @param  string  $location
 * @return void
 */
public function addLocation($location)
{
    $this->paths[] = $location;
}

/**
 * Prepend a location to the finder.
 *
 * @param  string  $location
 * @return void
 */
public function prependLocation($location)
{
    array_unshift($this->paths, $location);
}

/**
 * Add a namespace hint to the finder.
 *
 * @param  string  $namespace
 * @param  string|array  $hints
 * @return void
 */
public function addNamespace($namespace, $hints)
{
    $hints = (array) $hints;

    if (isset($this->hints[$namespace])) {
        $hints = array_merge($this->hints[$namespace], $hints);
    }

    $this->hints[$namespace] = $hints;
}

/**
 * Prepend a namespace hint to the finder.
 *
 * @param  string  $namespace
 * @param  string|array  $hints
 * @return void
 */
public function prependNamespace($namespace, $hints)
{
    $hints = (array) $hints;

    if (isset($this->hints[$namespace])) {
        $hints = array_merge($hints, $this->hints[$namespace]);
    }

    $this->hints[$namespace] = $hints;
}

/**
 * Replace the namespace hints for the given namespace.
 *
 * @param  string  $namespace
 * @param  string|array  $hints
 * @return void
 */
public function replaceNamespace($namespace, $hints)
{
    $this->hints[$namespace] = (array) $hints;
}

/**
 * Register an extension with the view finder.
 *
 * @param  string  $extension
 * @return void
 */
public function addExtension($extension)
{
    if (($index = array_search($extension, $this->extensions)) !== false) {
        unset($this->extensions[$index]);
    }

    array_unshift($this->extensions, $extension);
}

/**
 * Returns whether or not the view name has any hint information.
 *
 * @param  string  $name
 * @return bool
 */
public function hasHintInformation($name)
{
    return strpos($name, static::HINT_PATH_DELIMITER) > 0;
}

/**
 * Flush the cache of located views.
 *
 * @return void
 */
public function flush()
{
    $this->views = [];
}

/**
 * Get the filesystem instance.
 *
 * @return \Illuminate\Filesystem\Filesystem
 */
public function getFilesystem()
{
    return $this->files;
}

/**
 * Get the active view paths.
 *
 * @return array
 */
public function getPaths()
{
    return $this->paths;
}

/**
 * Get the namespace to file path hints.
 *
 * @return array
 */
public function getHints()
{
    return $this->hints;
}

/**
 * Get registered extensions.
 *
 * @return array
 */
public function getExtensions()
{
    return $this->extensions;
}
}

我尝试了几次,但我无法解决这个问题 我还编辑了 .env 文件中的 APP_URL,但没有改变 我该如何解决?

【问题讨论】:

  • 您似乎没有欢迎视图。
  • 但是我有,我已经完全上传了我的项目
  • 欢迎视图是在views文件夹的根目录中还是在views文件夹的另一个文件夹中?
  • 是的@Oleg-nurutdinov
  • 您的 WAMP 和主机是否具有相同的服务器/DocumentRoot 设置(设置为您项目的 public 文件夹)?

标签: php laravel


【解决方案1】:

尝试清除您的项目缓存:php artisan config:cachephp artisan cache:clear 可能缓存正在错误的位置查找文件。

【讨论】:

  • 在我的主机里做不到!
  • 好吧,在将项目上传到您的 sv 之前删除存储/框架/缓存文件或运行命令
  • 我在上传我的项目之前运行了命令但是没有工作,我将测试删除文件并回到这里,tnx
  • 只有 '.gitignore' 文件,它是空的
【解决方案2】:

您可以将主机与 vagrant ssh 连接,然后使用 CL 转到您的项目位置并运行以下命令:php artisan config:cache 以重新生成配置。 希望对你有帮助!

【讨论】:

  • 我无法访问 ssh ;(
猜你喜欢
  • 2015-09-15
  • 1970-01-01
  • 2017-02-10
  • 2019-02-25
  • 2019-06-27
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多