कृपया एक मान्य कैश पथ प्रदान करें


152

मैंने एक काम कर रहे लार्वा ऐप को दोहराया और इसका नाम बदलकर दूसरे ऐप के लिए इस्तेमाल किया। मैंने विक्रेता फ़ोल्डर को हटा दिया है और निम्नलिखित आदेशों को फिर से चलाता है:

composer self-update

composer-update

npm install

bower install

मैंने अपने मार्ग और सब कुछ ठीक से कॉन्फ़िगर किया है, हालांकि जब मैं अपने ब्राउज़र में अपना ऐप चलाने की कोशिश करता हूं तो मुझे निम्नलिखित त्रुटियां मिलती हैं:

InvalidArgumentException Compiler.php लाइन 36 में: कृपया एक मान्य कैश पथ प्रदान करें।

Filesystem में त्रुटि।

मेरे पास यह मुद्दा पहले कभी नहीं था, मुझे नहीं पता कि यह क्या कारण है और न ही मुझे पता है कि इसे कैसे ठीक करना है, मैंने एक समाधान के लिए ऑनलाइन googled किया है, लेकिन अभी तक कोई भी नहीं मिला है।


आपको स्टोरेज फ़ोल्डरों को फिर से बनाने की जरूरत है, वे आपकी .gitignore फाइल में हैं इसलिए जब आप किसी प्रोजेक्ट को क्लोन कर रहे हों तो उसकी नकल नहीं की जाएगी (क्योंकि वे रेपो में कभी धकेले नहीं जाते हैं)
twigg

जवाबों:


488

निम्नलिखित आज़माएँ:

इन फ़ोल्डरों को स्टोरेज / फ्रेमवर्क के अंतर्गत बनाएँ :

  • sessions
  • views
  • cache

अब यह काम करना चाहिए


21
मैंने इसे php कारीगर कैश के साथ जोड़ा: स्पष्ट और php कारीगर विन्यास: स्पष्ट और php कारीगर दृश्य: नीचे दिए गए उत्तर से स्पष्ट है और फिर यह काम किया
cja

आप संग्रहण फ़ोल्डर को मैन्युअल रूप से हटा सकते हैं और cmd के माध्यम से "php कारीगर भंडारण: लिंक" कमांड चला सकते हैं। फिर ऊपर बताए अनुसार फोल्डर बनाएं। बेहतर है कि आप पिछले संग्रहण फ़ोल्डर को बैकअप के रूप में रख सकते हैं और बाद में नए संग्रहण पथ में फ्रेमवर्क फ़ोल्डर को कॉपी कर सकते हैं।
नीलाद्रि बनर्जी - उत्तरपारा

मेरे पास वास्तव में यह मुद्दा था और ठीक किया गया काम, लगातार अस्थायी फ़ाइल बदलने वाली सामग्री के कारण जानबूझकर मेरे तोड़फोड़ उत्पाद से पूरे ढांचे के फ़ोल्डर को बाहर करने का एक परिणाम था। फिर एक नई प्रणाली पर स्वाभाविक रूप से रिप्रो की स्थापना के परिणामस्वरूप इन फ़ोल्डरों को मौजूदा नहीं किया गया। सोचा था कि मैं साझा
करूंगा

3
गिट खाली फ़ोल्डर्स क्लोन नहीं करता है! मैं उन 3 फ़ोल्डरों के लिए एक फ़ाइल folder.keeper बनाऊंगा।
तिफान जू

हां, क्योंकि इस फ़ोल्डर के संस्करण की आवश्यकता नहीं है
मौरिसियो वांडरले मार्टिन्स

45

इसे इस्तेमाल करे:

  1. php artisan cache:clear
  2. php artisan config:clear
  3. php artisan view:clear

11
मेरे लिए काम नहीं किया। मुझे मिल गया [InvalidArgumentException] Please provide a valid cache path। फिर से
मोटोकोचर

मेरे मामले में एक बुरा सपना मिला अगर भागो php artisan cache:clear!
बेन

32

तो जाहिरा तौर पर क्या हुआ था जब मैं अपने प्रोजेक्ट को डुप्लिकेट कर रहा था फ्रेमवर्क फ़ोल्डर मेरे भंडारण फ़ोल्डर के अंदर नई निर्देशिका में कॉपी नहीं किया गया था, यह मेरी त्रुटि का कारण बनता है।


मेरे साथ भी ऐसा ही हुआ जब मैं रूटीन कर रही थी composer update। अभी तक कोई समाधान नहीं हुआ।
पीटर

अपने सभी रास्तों की दोबारा जांच करें और सुनिश्चित करें कि कहीं भी कोई लापता फ़ोल्डर या फाइलें नहीं हैं।
user3718908

4
यह भी देखें कि क्या फ्रेम फोल्डर में सभी उपनिर्देशिकाएं हैं जिनके संबंधित अनुमतियाँ हैं
manix

ऐसा लगता है कि मेरी समस्या के लिए "थ्रो अपवाद के साथ ऐसा करने के लिए sth है अगर दृश्य कैश पथ खाली है।" Laravel 5.2.40 में परिवर्तन। laraver.xyz/projects/Laravel/versions/v5.2.40 मैं परिवर्तन को वापस नहीं ले सकता - सभी कंपोजर को अपग्रेड करने के बाद। या कारीगर टिप्पणी विफल
पीटर

मेरे मामले में आवेदन स्टोरेज डायर के अंदर फोल्डर गायब था
चौधरी वकास

21

आप इस तरह से अन्य वातावरण में अपने लार्वा एप्लिकेशन को स्थापित करने के निर्देशों के साथ अपने readme.md को संपादित कर सकते हैं :

## Create folders

```
#!terminal

cp .env.example .env && mkdir bootstrap/cache storage storage/framework && cd storage/framework && mkdir sessions views cache

```

## Folder permissions

```
#!terminal

sudo chown :www-data app storage bootstrap -R
sudo chmod 775 app storage bootstrap -R

```

## Install dependencies

```
#!terminal

composer install

```

आप मेरा दिन बचाते हैं :)
Mankeomorakort

15

इस त्रुटि का कारण Illuminate \ View \ Compilers \ Compiler.php से पता लगाया जा सकता है

public function __construct(Filesystem $files, $cachePath)
{
    if (! $cachePath) {
        throw new InvalidArgumentException('Please provide a valid cache path.');
    }

    $this->files = $files;
    $this->cachePath = $cachePath;
}

निर्माता को Illuminate \ View \ ViewServiceProvider में BladeCompiler द्वारा आमंत्रित किया गया है

/**
 * Register the Blade engine implementation.
 *
 * @param  \Illuminate\View\Engines\EngineResolver  $resolver
 * @return void
 */
public function registerBladeEngine($resolver)
{
    // The Compiler engine requires an instance of the CompilerInterface, which in
    // this case will be the Blade compiler, so we'll first create the compiler
    // instance to pass into the engine so it can compile the views properly.
    $this->app->singleton('blade.compiler', function () {
        return new BladeCompiler(
            $this->app['files'], $this->app['config']['view.compiled']
        );
    });

    $resolver->register('blade', function () {
        return new CompilerEngine($this->app['blade.compiler']);
    });
}

तो, आगे पीछे, निम्नलिखित कोड:

$this->app['config']['view.compiled']

आम तौर पर आपके /config/view.php में स्थित होता है, यदि आप मानक लार्वा संरचना का उपयोग करते हैं।

<?php
return [
    /*
    |--------------------------------------------------------------------------
    | View Storage Paths
    |--------------------------------------------------------------------------
    |
    | Most templating systems load templates from disk. Here you may specify
    | an array of paths that should be checked for your views. Of course
    | the usual Laravel view path has already been registered for you.
    |
    */
    'paths' => [
        resource_path('views'),
    ],
    /*
    |--------------------------------------------------------------------------
    | Compiled View Path
    |--------------------------------------------------------------------------
    |
    | This option determines where all the compiled Blade templates will be
    | stored for your application. Typically, this is within the storage
    | directory. However, as usual, you are free to change this value.
    |
    */
    'compiled' => realpath(storage_path('framework/views')),
];

realpath (...) गलत है, अगर पथ मौजूद नहीं है। इस प्रकार, आह्वान

'Please provide a valid cache path.' error.

इसलिए, इस त्रुटि से छुटकारा पाने के लिए, आप यह सुनिश्चित करने के लिए क्या कर सकते हैं

storage_path('framework/views')

या

/storage/framework/views

मौजूद :)


10

आपको "फ्रेमवर्क" के अंदर फ़ोल्डर बनाने की आवश्यकता है। कृपया इन चरणों का पालन करें:

cd storage/
mkdir -p framework/{sessions,views,cache}

आपको इस निर्देशिका में Laravel को डेटा लिखने की अनुमति देने के लिए अनुमतियाँ सेट करने की भी आवश्यकता है।

chmod -R 775 framework
chown -R www-data:www-data framework

777 की अनुमतियों के साथ इसका मतलब है कि जो कोई भी उसी सर्वर पर एक उपयोगकर्ता है वह फाइल को पढ़, लिख और निष्पादित कर सकता है।
सोहेल अहमद

1
sessionsबहुवचन मामले में निर्देशिका, नहींsession
इवगेनी मेनागाशेव

1
@ ईवगेनी मयनागेशेव, हाँ आप सही हैं। यह टाइपो त्रुटि थी, बस वर्तनी को ठीक किया गया। साभार
सोहेल अहमद

7

जाँचें कि क्या निम्न फ़ोल्डर मौजूद हैं, यदि ये फ़ोल्डर नहीं बनाते हैं।

  • भंडारण / रूपरेखा / कैश
  • भंडारण / रूपरेखा / सत्र
  • भंडारण / रूपरेखा / परीक्षण
  • भंडारण / रूपरेखा / विचारों

6

जब मैंने स्टोरेज फ़ोल्डर और उसके सबफ़ोल्डर्स सेशन , व्यू और कैश के अंदर फ्रेमवर्क फ़ोल्डर बनाया तो मैंने इस समस्या को हल किया ।

अपने cmd या टर्मिनल पर जाएँ और फिर अपना प्रोजेक्ट रूट पथ टाइप करें और उसके बाद निम्न टाइप करें:

cd storage
mkdir framework
cd framework
mkdir sessions
mkdir views
mkdir cache

अपने प्रोजेक्ट रूट पथ पर फिर से जाएं और संगीतकार अपडेट चलाएं

उसके बाद कारीगर पूरी तरह से काम करता है।


6

निम्नलिखित आज़माएँ:

इन फ़ोल्डरों को स्टोरेज / फ्रेमवर्क के अंतर्गत बनाएँ:

  • सत्र
  • विचारों
  • कैश / डेटा

अगर फिर भी यह काम नहीं करता है तो प्रयास करें

php artisan cache:clear
php artisan config:clear
php artisan view:clear

यदि कैश साफ़ न कर पाने की त्रुटि हो। कैश / डेटा में एक फ़ोल्डर डेटा बनाना सुनिश्चित करें


5

कृपया टर्मिनल में दौड़ें,

   sudo mkdir storage/framework
   sudo mkdir storage/framework/sessions
   sudo mkdir storage/framework/views
   sudo mkdir storage/framework/cache
   sudo mkdir storage/framework/cache/data

अब आपको अनुमति बदलनी होगी,

   sudo chmod -R 777 storage

यदि आप गतिशील रूप से निर्माण करना चाहते हैं, तो आप भी बना सकते हैं, $paths = ["storage","storage/framework", "storage/framework/sessions", "storage/framework/views", "storage/framework/cache", "storage/framework/cache/data", "storage/logs", "storage/fonts"]; `foreach ($ पथ $ पथ के रूप में) {` `if! (फ़ाइल :: .Directory ($ पथ)) {` File::makeDirectory($path, 0777, true, true); } }
Rasheduzzaman


1

मेरी तरफ से समस्या (स्थानीयहोस्ट पर तैनात करते समय): दृश्य फ़ोल्डर गायब था .. इसलिए यदि आपके पास फ्रेमवर्क फ़ोल्डर नहीं है तो आपको फ़ोल्डर जोड़ने की आवश्यकता होगी। लेकिन अगर पहले से ही फ्रेम फोल्डर मौजूद है तो उपरोक्त सभी फोल्डर अर्थात 1. कैश 2. सेशन 3. व्यूज सुनिश्चित करें

आपकी फ्रेमवर्क निर्देशिका में मौजूद है।


0

मैंने इस लाइन को अपने में जोड़कर इस समस्या को हल किया index.php:

$app['config']['view.compiled'] = "storage/framework/cache";

0

आपकी संग्रहण निर्देशिका अनुपलब्ध हो सकती है, या उसकी कोई उप-निर्देशिका हो सकती है। भंडारण निर्देशिका में सभी उप-निर्देशिकाएं होनी चाहिए जो लारवेल की स्थापना के साथ भेज दी गई हैं।


-1

मेरे 2 सेंट

भंडारण के अंदर सब कुछ निकालें और फिर ऐसा करें:

> cd storage/
> mkdir -p framework/{sessions,views,cache}
> chmod -R 777 framework

// This last line depends on your user group settings so 
// it may not be applicable to you.
> chown -R www-data:www-data framework

मेरे लिए काम किया =)


-2

त्रुटि: 'कृपया एक मान्य कैश पथ प्रदान करें।' त्रुटि।

यदि इन प्रकार की त्रुटि आती है तो नीचे दिया गया समाधान है: -

कृपया भंडारण / रूपरेखा / कैश के अंदर डेटा फ़ोल्डर बनाएँ


2
ढेर अतिप्रवाह में आपका स्वागत है! कृपया ऐसे उत्तर प्रदान करें जिनमें न केवल समाधान शामिल है, बल्कि कम से कम कुछ शब्द भी हैं कि आपने इसे कैसे पाया।
ज़िकुआन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.