对于我的管理员面板,我会提取所有资产,包括manifest-json.js
到mix.setPublicPath(path.normalize('public/backend/'))
。
所有文件都正确添加到后端文件夹中,manifest-json.js
文件如下所示:
{
// all correct here
"/js/vendor.js": "/js/vendor.js",
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css",
"/js/manifest.js": "/js/manifest.js"
}
问题在于使用时
{{ mix('backend/css/app.css') }}
在我的刀片文件中,它会在public/manifest-json.js
中查找,而不是在backend/manifest-json.js
中查找。
如何确保使用正确的manifest-json.js
文件?
答案 0 :(得分:18)
我解决了运行此命令的问题
npm install
然后
npm run production
谢谢。
答案 1 :(得分:10)
我遇到的问题是mix()
- 帮助函数默认在/public/manifest-json.js
中查找manifest-json文件,所以如果你将该文件存储在任何其他目录级别,那么它将抛出该错误
让我们说manifest-json文件存储在public/app/manifest-json.js
中,然后存储在public/app/css/app.css
中的文件中,您将使用:
<link rel="stylesheet" href="{{ mix('css/app.css', 'app') }}">
mix()
- 帮助函数允许第二个参数,即清单文件的目录。只需在那里指定它,它将使用正确的清单文件。
答案 2 :(得分:7)
在共享主机和 laravel 5.6 测试中:
在做了标准级别之后,如解释here;
需要两个级别:
在app/Providers/AppServiceProvider.php
:
$this->app->bind('path.public', function() {
return realpath(base_path().'/../public_html');
});
并在public_html
文件中生成.htaccess
文件,内容为:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
来源:here 这个文件在某些情况下发生了很大变化。
这就是全部并解决了我的问题
答案 3 :(得分:4)
尝试以下命令:
npm install
npm run dev
答案 4 :(得分:2)
我与发问者有相同的问题:manifest does not exist
为解决该问题,我执行了以下2条命令:
npm install
然后
npm run dev
,错误已解决。是的。
答案 5 :(得分:1)
解决方法有3种,我总结一下上面同事说的:
问题在于,您在视图中使用了 mix()。
<link rel="stylesheet" href="{{ mix('dist/css/app.css') }}">
解决方案 1 改成这个。
<link rel="stylesheet" href="{{ asset('dist/css/app.css') }}">
解决方案 2 如果您没有 root 访问权限:
修改 App\Providers\AppServiceProvider 文件并将以下内容添加到 boot() 方法中。
$this->app->bind('path.public', function() {
return base_path().'/../public_html';
});
解决方案 3
如果您有 root 访问权限,请运行:
npm install & npm run dev
答案 6 :(得分:1)
我遇到了同样的错误
因为我跑步时
npm install
npm run dev
我遇到了一些错误。
当我更新我的 nodejs 版本时它被修复了。
答案 7 :(得分:1)
我只是发布,也许有人会需要它。 对我来说,当我更改刀片文件 css 和 js 指向的路径时,它起作用了。如下:
在我的刀片上是这样的:
<div id="container2">
<section class="container3">
<div class="box">
<div class="box-image img1"></div>
<h2>Památky</h2>
<p class="box-text">Egypt je země na památky velice bohatá. Pojedeme-li po Nilu od egyptských hranic na sever, můžeme se neustále nechávat okouzlovat novými a novými chrámy, sfingami, pyramidami … . Naše stránky se teprve rozjíždějí. Proto jsme zatím vybrali pouze nejnavštěvovanější památky. Samozřejmě budeme jejich počet průběžně rozšiřovat. Zatím jsou rozděleny do tří oblastí - okolí Káhiry (Gíza, Sakkara a Memfis), okolí Luxoru (starověké Théby neboli Veset) a jižní hranice Egypta (Asuán, Abú Simbel …). S rozšiřováním stránek budeme samozřejmě rozšiřovat i počet oblastí.</p>
<div class="button"><a href="">VÍCE</a></div>
</div>
<div class="box">
<div class="box-image img2"></div>
<h2>Pyramidy</h2>
<p class="box-text">Tři velké jehlany se sfingou v popředí jsou snad nejčastěji používaným symbolem Egypta.Udivující je, že vznikly již v raném počátku egyptské civilizace a státnost, za vlády 4. dynastie. Tyto tři velké pyramidy v Gíze jsou sice nejznámější, avšak v žádném případě jediné. Po celém Egyptě je rozeseto množství méně známých, ale ne méně cenných pyramid. Že tyto monumentální stavby byly postaveny proto, aby chránily věčný spánek faraónů, ví dnes každé malé dítě. Již pět tisíciletí zaměstnávají mysl architektů, matematiků, archeologů, stavitelů, ale i vyznavačů méně exaktních směrů.</p>
<div class="button"><a href="">VÍCE</a></div>
</div>
<div class="box">
<div class="box-image img3"></div>
<h2>Chufevova pyramida</h2>
<p class="box-text">Je známá pod jménem vládce, který ji nechal postavit, faraóna Chufeva, řecky Cheopse. Je to největší dodnes stojící pyramida a na dlouhá tisíciletí největší dílo lidských rukou vůbec. Do roku 1880 byla nejvyšší stavbou na světě, pak ji překonaly věže dómu v Kolíně nad Rýnem a v roce 1889 Eiffelova věž. Se čtvercovou základnou o straně 230 metrů a původní výškou 146 m si naše představivost asi těžko poradí. Fotbalovým fanouškům přiblížíme lépe její velikost, když řekneme, že na její základnu by se vešlo deset fotbalových hřišť.</p>
<div class="button"><a href="">VÍCE</a></div>
</div>
<div class="box">
<div class="box-image img4"></div>
<h2>Rachefova pyramida</h2>
<p class="box-text">Známe ji též pod názvem Chefrenova pyramida. Po vzoru svého otce Chufeva si nechává stavět svoji hrobku i faraón Rachef. Tato pyramida, která je o deset metrů nižší, než byla původní výška Chufevovy pyramidy a o metr nižší než je dnes, působí daleko vyšším dojmem, protože je postavená na místě výše postaveném. Obě jsou však téměř stejně veliké. Rozdíl deseti metrů výšky a dvaceti metrů v jedné straně základny (Rachefova má základnu 210 x 210 m) už na výsledném monumentálním dojmu nic nebere.</p>
<div class="button"><a href="">VÍCE</a></div>
</div>
</div>
</div>
</div>
我将 MIX 更改为 ASSET 为:
<link rel="stylesheet" href="{{ mix('dist/css/app.css') }}">
JS 文件也一样:
<link rel="stylesheet" href="{{ asset('dist/css/app.css') }}">
答案 8 :(得分:0)
如果您在使用 Laravel Nova 或望远镜时遇到此问题,那么您可能真的缺少 mix-manifest 文件。您应该在 public/vendor/toolname/ 中拥有该文件 其中工具名称可以是 Nova 或 Telescope。如果您有该文件夹,您应该继续并放入您的服务器,否则您将首先必须发布资产,然后将其放入服务器。
答案 9 :(得分:0)
为了将您的公共路径绑定到 public_html,在文件 index.php
中添加以下 3 行:
$app->bind('path.public', function() {
return __DIR__;
});
这对我来说适用于共享主机
答案 10 :(得分:0)
我更改了 resources/layouts/guest.blade.php 和 resources/layouts/app.blade.php
df1 = spark.createDataFrame([[1, "a"], [2, "b"], [3, "c"]], ("id", "value"))
df2 = spark.createDataFrame([[1, "a"], [2, "b"], [3, "c"]], ("id", "value"))
join_with_aliases(
left=df1,
right=df2,
on=["id"],
how="inner",
right_prefix="_right"
).show()
+---+-----+------------+
| id|value|value_right|
+---+-----+------------+
| 1| a| a|
| 3| c| c|
| 2| b| b|
+---+-----+------------+
和 resources/css 和 resources/js 复制我的公共文件夹
答案 11 :(得分:0)
如果对每个人来说都是一样的,在我的情况下,laravel-mix 似乎没有安装,所以没有更改任何文件,我只是通过运行安装了 laravel-mix:
npm install laravel-mix@latest --save-dev
答案 12 :(得分:0)
在尝试访问登录和注册页面时,将 laravel 项目部署到(共享)服务器后,我遇到了同样的异常。它在本地机器上运行良好。
我保持文件和文件夹结构与本地环境相同(我们在本地 public 文件夹中的所有文件都在服务器上的 public_html 文件夹中)。
上面提到的解决方案似乎有效。根据我的文件和文件夹结构,我将以下代码添加到 AppServiceProvider 文件和 boot() 方法中。
$this->app->bind('path.public', function() {
return realpath(base_path().'/public_html');
});
现在唯一的问题是登录、注册和仪表板页面的 CSS 乱了。我是 Livewire 的新手,我不知道如何解决这个问题。
答案 13 :(得分:0)
在共享主机环境中,例如,删除混合{!!脚本(mix('js / manifest.js'))!!}
应更改为
{!!脚本('js / manifest.js')!!}
这实际上对我有用
答案 14 :(得分:0)
我在共享主机上遇到了问题,在该主机上我无法运行npm命令。然后,我使用了最简单的方法。在/vendor/laravel/.../Foundation/Mix.php中,替换
i$manifests[$manifestPath] = json_decode(file_get_contents($manifestPath), true);
到
$manifests[$manifestPath] = json_decode(file_get_contents('https://your-domain.com/mix-manifest.json'), true);
不推荐,但是可以。您可以将其用作最后一次尝试。
答案 15 :(得分:0)
我在Laravel软件包中遇到了同样的问题,其资产未发布:
这为我解决了这个问题:
php artisan vendor:publish --tag=telescope-assets --force
来源: https://github.com/laravel/telescope/issues/136 https://github.com/laravel/telescope/issues/250
答案 16 :(得分:-1)
我找到了新的解决方案
问题是混合舱单吗? 因此,只需重定向到混合清单功能即可。例如,您有:
{{ style(mix('css/backend.css')) }}
只需将您的代码更改为
{{ style('css/backend.css') }}
对我有用